创建有序单链表
【问题描述】为从键盘终端输入的m个整数创建带头结点的有序单链表存储结构,使输入的数据元素在单链表中按照元素值递增有序。
【输入形式】
第一行:单链表中元素个数m
第二行:单链表中的m个整数
【输出形式】按递增有序形式输出m个整数
【样例输入】
5
1 3 2 4 5
【样例输出】1 2 3 4 5
#include <iostream>
using namespace std;
struct Node {
int data;
Node *next;
};
typedef Node *LinkList;
//-----------创建有序单链表-------
void createOList(LinkList &h,int n) {
Node *p,*pre;
h=new Node;
h->next=NULL;
for(int i=1;i<=n;i++){
p=new Node;
cin>>p->data;
pre=h;
while(pre->next && pre->next->data < p->data){
pre=pre->next;
} //边比较边插入
p->next=pre->next;
pre->next=p;
}
}
//----------------------
void printList(LinkList L) {
Node *p;
p=L->next;
while(p) {
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int main() {
LinkList L;
int m;
cin>>m;//单链表中元素个数
createOList(L,m);//创建带头节点的有序单链表
printList(L);
return 0;
}
记录一些数据结构学习过程的习题代码,便于日后查看。如有错误,欢迎交流指正。
标签:pre,Node,单链,笔记,next,有序,表中,数据结构 From: https://www.cnblogs.com/zhuannnn/p/17557879.html