首页 > 其他 > 详细

线性表

时间:2019-10-09 14:44:32      阅读:94      评论:0      收藏:0      [点我收藏+]

1.设计在无头结点的单链表中删除第i个结点的算法。

[分析]

应判断删除位置的合法性,当 i < 0 或 i > n - 1 时,不允许进行删除操作;

当 i = 0 时,删除第一个结点;

当 0 < i < n 时,允许进行删除操作,但在查找被删除结点时,须用指针记住该结点的前趋结点。

[算法描述]

技术分享图片
 1 delete(LinkList *q, int i)
 2 {
 3     //在无头结点的单链表中删除第i个结点
 4     LinkList *p, *s;
 5     int j;
 6     if(i < 0)
 7         printf("Can‘t delete.");
 8     else if(i == 0)
 9            {
10                s = q;
11                q = q -> next;
12                free(s); 
13            }
14             else
15             {
16                  j = 0;
17                  s = q;
18                  while((j < i) && (s != NULL))
19                  {
20                       p = s;
21                       s = s-> next;
22                       j ++;
23                  }
24                  if(s == NULL)
25                      printf("Can‘t delete.");
26                  else
27                  {
28                       p -> next = s -> next;
29                       free(s);
30                  }
31             }
32 }
算法描述

 

2.

线性表

原文:https://www.cnblogs.com/zhaizong/p/11641425.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!