单链表的存储结构:
typedef struct LinkList{
int data;
LinkList * next;
}
分析:
这里和顺序表那题题意是一样的,都是插入一个元素节点x后,使链表仍然有序。
那这两者有啥区别吗?
存储结构不一样。
顺序表是顺序存储结构,单链表是链表存储结构。
二者区别:
1.顺序表是先找到插入位置,然后将后面元素全体后移,让它插入。
2.而这里单链表,通过判断数据域,找到该位置,不需要移动大量元素,直接插入即可,比顺序表更方便。
思路:
1.已知一个数据域,那么把它的整个结点生成完整。并定义两个指针pre,p
2.通过while循环,判断p->data < x.,如果没找到,两个指针同步后移。
3.找到了,则将生成的结点插入即可。
C代码实现:
void inorderList(LinkList *&L,int x){
LinkList *pre = L,*P = pre->next,*s;
s = (LinkList *)malloc(sizeof(LinkList));
s->data = x; s->next = null;
while(p!=null && p->data < x){
pre = p;
p=p->next;
}
s->next = pre->next; //插入节点
pre->next = s;
}