第一范文网 - 专业文章范例文档资料分享平台

单链表的初始化插入和删除实验报告

来源:用户分享 时间:2025/5/20 21:02:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

数据结构实验报告

}

return head; //返回头指针 }

//==========按值查找结点,找到则返回该结点的位置,否则返回

NULL==========

ListNode *LocateNode(LinkList head, char *key) {

ListNode *p=head->next; //从开始结点比较

while(p&&strcmp(p->data,key)!=0 ) //直到p为NULL或p-> data为key止

p=p->next; //扫描下一个结点

return p; //若p=NULL则查找失败,否则p指向找到的值

key的结点

}

//==========删除带头结点的单链表中的指定结点======= void DeleteList(LinkList head,char *key) {

ListNode *p,*r,*q=head;

p=LocateNode(head,key); //按key值查找结点的 if(p==NULL ) { //若没有找到结点,退出 printf(\ exit(0);

5

数据结构实验报告

}

while(q->next!=p) //p为要删除的结点,q为p的前结点 q=q->next; r=q->next; q->next=r->next;

free(r); //释放结点 }

//===========打印链表======= void printlist(LinkList head) {

ListNode *p=head->next; //从开始结点打印 while(p){

printf(\ p=p->next; }

printf(\}

//==========删除所有结点,释放空间=========== void DeleteAll(LinkList head) {

ListNode *p=head,*r; while(p->next){

6

数据结构实验报告

r=p->next; free(p); p=r; } free(p); }

运行结果:

加的添加结点的代码:

int Insert(ListNode *head) // the insert function {

7

ListNode *in,*p,*q; int wh;

printf(\

数据结构实验报告

}

in=(ListNode *)malloc(sizeof(ListNode));in->next=NULL; p=(ListNode *)malloc(sizeof(ListNode));p->next=NULL; q=(ListNode *)malloc(sizeof(ListNode));q->next=NULL; if(!in)

return 0;

scanf(\

printf(\scanf(\

for(p=head;wh>0;p=p->next,wh--); q=p->next; p->next=in; in->next=q; return 1;

运行结果:

8

搜索更多关于: 单链表的初始化插入和删除实验报告 的文档
单链表的初始化插入和删除实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8urm51h0b51is5307336_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top