c语言.链表.学习笔记

上传人:第*** 文档编号:38764006 上传时间:2018-05-07 格式:DOC 页数:4 大小:28KB
返回 下载 相关 举报
c语言.链表.学习笔记_第1页
第1页 / 共4页
c语言.链表.学习笔记_第2页
第2页 / 共4页
c语言.链表.学习笔记_第3页
第3页 / 共4页
c语言.链表.学习笔记_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言.链表.学习笔记》由会员分享,可在线阅读,更多相关《c语言.链表.学习笔记(4页珍藏版)》请在金锄头文库上搜索。

1、C 语言.链表.学习笔记链表的插入节点的小程序,其原理与删除节点的差不多。都是首先要找到欲处理的节点。插入节点的情况有 3 种,即所谓的头节点,尾节点和中间节点。1.头节点的处理:将节点插入在链表第一个元素前面,只要将新建立的节点指针指向链表的第一个节点就可以了。2.尾节点的处理:将节点插入在链表的最后一个元素后面,将尾节点的指针指向新建立的节点,然后将新建立的节点指向 NULL 位置。3.中间节点的处理:将节点插入在链表中间的任意位置,比如有 p,q2 个节点(p 在前),则需将新建立的节点指向 q,将 p 指向新建立的节点。在下面的程序中还用到了冒泡排序法。不要小瞧这个冒泡排序哦。据说 G

2、OOGLE 的笔试题中一个冒泡就能让 60%的人回家。好了,下面贴出程序。#include#includestruct list/定义链表的结构,方法很固定,熟记int data;struct list *next;typedef struct list node;typedef node *link;link create_list(int array,int num)/创建链表,以数组和元素个数作为形参变量link tmp1,tmp2,pointer;/pointer 指针始终指向该链表,tmp1 和 tmp2 指针用来将数组元素输入到节点中int i;pointer=(link)mall

3、oc(sizeof(node);/首先分配地址空间pointer-data=array0;/输入第一个元素tmp1=pointer;for(i=1;inext=NULL;tmp2-data=arrayi;tmp1-next=tmp2;tmp1=tmp2;return pointer;void bubble_sort(link pointer,int num)/给出链表指针和节点个数,可以用冒泡算法进行排序link tmp;int i,j,k;for(i=1;idatatmp-next-data)k=tmp-data;tmp-data=tmp-next-data;tmp-next-data=k;

4、tmp=tmp-next;void print_list(link pointer)while(pointer)printf(“2: %dn“,pointer-data);pointer=pointer-next;link insert_node(link pointer,link btmp,int value)link newnode;if(btmp=NULL)/此为头节点前需要插入元素的情况newnode=(link)malloc(sizeof(node);newnode-data=value;newnode-next=pointer;return newnode;elseif(btmp-

5、next=NULL)/此为尾节点后需要加入的元素的情况newnode=(link)malloc(sizeof(node);newnode-data=value;btmp-next=newnode;newnode-next=NULL;else/此为在链表中间需要加入元素的情况newnode=(link)malloc(sizeof(node);newnode-data=value;newnode-next=btmp-next;/注意下面这两句的先后顺序,要先指明新节点的后续节点。btmp-next=newnode;return pointer;/返回链表头指针link search_insert_

6、location(link pointer,int value)link tmp,btmp;int OTRUE=1;tmp=pointer;btmp=NULL;while(tmpif(OTRUE)btmp=tmp;tmp=tmp-next;pointer=insert_node(pointer,btmp,value);return pointer;void main()int arr=3,12,8,9,11;link ptr;ptr=create_list(arr,5);bubble_sort(ptr,5);printf(“1:Print before insert node.n“);print_list(ptr);ptr=search_insert_location(ptr,15);printf(“1:Print after insert node 15n“);print_list(ptr);ptr=search_insert_location(ptr,7);printf(“1:Print after insert node 7n“);print_list(ptr);来自: http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号