数据结构练习笔记——创建有序单链表

创建有序单链表

【问题描述】为从键盘终端输入的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;
}

记录一些数据结构学习过程的习题代码,便于日后查看。如有错误,欢迎交流指正。

posted @ 2023-07-16 15:08  某zhuan  阅读(240)  评论(0)    收藏  举报