C++第2周(春)项目6 动态链表初体验(三)

2014-11-24 10:25:48 · 作者: · 浏览: 1
得不得了 cin>>n; } return; } void insert(int x) //将值为x的结点插入到有序链表中,使仍有序 { Node *t,*p,*q; //p用于指向新建立的结点, q指向链表尾部 t=new Node; t->data=x; t->next=NULL; if(head==NULL) //是空链表,p作为第一个结点即可 head=t; else //插入p结点后,各结点应该保持有序 { if(x<=head->data) //新加入的结点应该为首结点 { t->next=head; head=t; } //应该找到合适的位置后,将结点插入 //此时,链表中至少已经有一个结点,且插入结点不是首结点 else { p=head; q=p->next; //p与q相邻,p更靠近q,插入位置将在p和q之间 while(q!=NULL&&x>q->data) //链表没有完且p结点比n小,一直往后找 { p=q; q=p->next; } if(q==NULL) //q为null,作为最后一个结点直接插入到p后即可 { p->next = t; } else //t插入到p和q之间 { t->next=q; p->next=t; } } } return; } //输出所有的节点 void out_list() { Node *p=head; cout<<"链表中的数据为:"< data<<" "; p=p->next; } cout<




==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======