导航:首页 > 源码编译 > 删除算法原理

删除算法原理

发布时间:2023-08-04 03:42:47

❶ 顺序表、单链表的删除算法

单链表的删除操作是指删除第i个结点,返回被删除结点的值。删除操作也需要从头引用开始遍历单链表,直到找到第i个位置的结点。如果i为1,则要删除第一个结点,则需要把该结点的直接后继结点的地址赋给头引用。对于其它结点,由于要删除结点,所以在遍历过程中需要保存被遍历到的结点的直接前驱,找到第i个结点后,把该结点的直接后继作为该结点的直接前驱的直接后继。删除操作如图

单链表的删除操作示意图

删除操作的算法实现如下:
public T Delete(int i)
{
if (IsEmpty()|| i < 0)
{
Console.WriteLine("Link is empty or Position is error!");
return default(T);
}
Node q = new Node();
if (i == 1)
{
q = head;
head = head.Next;
return q.Data;
}
Node p = head;
int j = 1;
while (p.Next != null&& j < i)
{
++j;
q = p;
p = p.Next;
}
if (j == i)
{
q.Next = p.Next;
return p.Data;
}
else
{
Console.WriteLine("The ith node is not exist!");
return default(T);
}
}
算法的时间复杂度分析:单链表上的删除操作与插入操作一样,时间主要消耗在结点的遍历上。如果表为空则不进行遍历。当表非空时,删除第i个位置的结点, i等于1遍历的结点数最少(1个),i等于n遍历的结点数最多(n个,n为单链表的长度),平均遍历的结点数为n/2。所以,删除操作的时间复杂度为O(n)。

与删除算法原理相关的资料

热点内容
单片机选用12mhz晶振 浏览:242
测试算法口诀 浏览:496
java输出对齐 浏览:884
视频加密只读怎么办 浏览:450
电气专业转行程序员 浏览:116
每次选课学校服务器崩溃怎么办 浏览:955
多媒体是什么app 浏览:335
微机原理单片机区别 浏览:564
形象学pdf 浏览:72
让微信加密 浏览:463
地基加密法PPT 浏览:305
vivo手机文件夹怎么锁 浏览:411
抖音服务器ip地址有哪些 浏览:547
hmi编程语言 浏览:722
cg二叉树编译连接不上 浏览:857
电脑数字表格用什么app 浏览:351
将一个表格同时复制到多个文件夹 浏览:488
中建招程序员吗 浏览:364
算法公司创始人 浏览:657
学编程能上手吗 浏览:795