单链表2
2015-07-01 10:34
239 查看
//删除单链表中的某个元素 node *del(node *head,int num) { node *p1,*p2; p1=head; while(num!=p1->data&&p1->next!=NULL) { p2=p1; p1=p1->next; } if(num==p1->data) { if(p1==head) { head=p1->next; free(p1); } else p2->next=p1->next; } else cout<<num<<"没有在单链表中找到!"<<endl;//printf("\n%d 没有在单链表中找到!",num); return head; } //在单链表中插入一个元素 node *insert(node *head,int num) { node *p0,*p1,*p2; p1=head; p0=(node *)malloc(sizeof(node)); p0->data=num; while(p0->data>p1->data&&p1->next!=NULL) { p2=p1;p1=p1->next; } if(p0->data<=p1->data) { if(head==p1) { p0->next=p1; head=p0; } else { p2->next=p0; p0->next=p1; } } else { p1->next=p0; p0->next=NULL; } return head; } //对单链表从小到大排序: node *sort(node *head) { node *p; int n;int temp; n=length(head); if(head==NULL||head->next==NULL) return head; p=head; for(int j=1;j<n;++j) { p=head; for(int i=0;i<n-j;++i) { if(p->data>p->next->data) { temp=p->data; p->data=p->next->data; p->next->data=temp; } p=p->next; } } return head; } <pre name="code" class="cpp"> //求单链表的长度 int length(node *head) { int n=0; node *p; p=head; while(p!=NULL) { p=p->next; n++; } return(n); }
相关文章推荐
- 直接运行 html 代码(参考网络)
- Win10预览版10159有哪些变化 Win10预览版10159变化汇总
- 初探浅拷贝与深拷贝
- 《Java程序设计》实训每天一博文之第一天
- Eclipse4.4 安装java反编译插件Eclipse Class Decompiler
- U盘(闪存盘)量产的普及知识的问题
- HTML5实战70行代码实现《疯狂抢NIKE》游戏
- 区分listview的item和Button的点击事件
- 黑马程序员——Java基础---泛型
- JSON知识
- WordPress中"无法将上传的文件移动至"错误的解决方法
- HTTPS访问中证书的处理
- [leetcode] 109.Convert Sorted List to Binary Search Tree
- 16周作业
- web.input()与web.data()函数比较
- java线程的生命周期有哪些
- 系统服务(daemons)
- 如何注册Uber司机(全国版最新最详细注册流程)
- 实现ppt转pdf的方法
- wamp服务器访问php非常缓慢的解决过程