单链表完整C语言纯代码Word格式.docx

上传人:b****0 文档编号:13204944 上传时间:2022-10-08 格式:DOCX 页数:7 大小:15.47KB
下载 相关 举报
单链表完整C语言纯代码Word格式.docx_第1页
第1页 / 共7页
单链表完整C语言纯代码Word格式.docx_第2页
第2页 / 共7页
单链表完整C语言纯代码Word格式.docx_第3页
第3页 / 共7页
单链表完整C语言纯代码Word格式.docx_第4页
第4页 / 共7页
单链表完整C语言纯代码Word格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单链表完整C语言纯代码Word格式.docx

《单链表完整C语言纯代码Word格式.docx》由会员分享,可在线阅读,更多相关《单链表完整C语言纯代码Word格式.docx(7页珍藏版)》请在冰豆网上搜索。

单链表完整C语言纯代码Word格式.docx

structnode*next;

};

链表的初始化函数

在该函数中要分配头结点存储空间

让头指针指向头结点,

因此要修改头指针的值,

所以传递头指针的地址进来

voidinit(structnode**h)

structnode*s;

s=(structnode*)malloc(sizeof(structnode));

if(s==NULL)return;

/*

头结点的数据域存储链表的长度

*/

s->

data=0;

next=NULL;

/*让头指针指向头结点*/

*h=s;

}

创建链表,仍然按照逆序创建,

从后往前输入元素的值,

然后把新结点插入到表头

voidcreateLink(structnode*h)

intn;

while

(1)

{

scanf("

%d"

&

n);

/*根据实际情况判断链表的元素

输入结束

还有一种情况就是找不到合适的

作为结束标记的值

先让用户输入元素个数,

然后固定字数循环*/

if(n==-1)break;

创建新结点

data=n;

next=h->

next;

新结点放入链表的表头

让头结点的NEXT指向新结点

h->

next=s;

(h->

data)++;

}

遍历整个链表

voidbianliLink(structnode*h)

intk;

structnode*p;

P指向第一个结点

p=h->

如果定义了链表长度变量,

可以使用变量计数,

表示处理到链表的最后一个元素

如果不定义链表长度变量,

就用指针是否指向NULL,

判断是否处理到最后一个元素了

/*1.链表长度变量计数*/

k=0;

while(k<

h->

data)

/*对元素进行处理

这里可以根据需求变更*/

printf("

%d"

p->

data);

/*准备处理下一个节点*/

p=p->

k++;

/*2.

用指针判断是否处理到链表的

最后一个元素了

printf("

\n"

);

while(p!

=NULL)

/*处理当前节点*/

p=p->

intnum:

要插入的结点元素的值

index:

插入位置:

index从1开始编号,

要在Index指定的位置插入数据

voidinsertLink(structnode*h,intnum,intindex)

structnode*p,*s;

intk=1;

/*插入位置无效,链表长度现在是10,在12(包含12)之后的位置插入元素,认为地址无效*/

if(index<

=0||index>

(h->

data+1))return;

s=(structnode*)malloc(sizeof(structnode));

data=num;

让指针p指向头结点

p=h;

让指针p移动到待插入位置的前驱结点

index)

p=p->

next=p->

p->

next=s;

data++;

删除位置:

要删除index所指的位置的元素

voiddeleteLink(structnode*h,intindex)

data)return;

/*让指针p移动到待删除节点的前驱*/

next=p->

next->

/*链表删除有可能让你返回删除的节点的值*/

data--;

该方法返回链表的Index位置的元素

链表中的数据元素的类型与函数返回值

的类型要一致

intgetLink(structnode*h,intindex)

p=h->

while(k++<

p=p->

returnp->

data;

main()

structnode*header;

init(&

header);

createLink(header);

bianliLink(header);

insertLink(header,10,1);

insertLink(header,11,header->

data+1);

insertLink(header,13,4);

deleteLink(header,1);

deleteLink(header,header->

deleteLink(header,3);

%d,%d,%d\n"

getLink(header,0),getLink(header,header->

data),getLink(header,3));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1