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

2026/1/24 17:08:08

数据结构实验报告

}

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文档下载到电脑
搜索更多关于: 单链表的初始化插入和删除实验报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219