在双链表中可以从任意节点的节点可以有多个前驱节点吗?

通过两个指针分别指向前驱和后繼结点并在单向链表上进行移动,当指针指向待处理的结点时该结点的前驱也有指针指向。

2.设有一个无序单向链表且数据域的值均鈈相同,使指针pmin指向最小值结点并使指针prem指向最小值结点的前驱结点:

3.单向链表的删除算法

注:使用malloc函数分配的结点单元必须使用free函数來释放,free(p)之后p所指向的单元被释放,p被

重新赋值为随机值p只能在程序运行完成之后自动清除。

注:单向链表的最基本的操作新建一個链表、删除一个元素、打印链表、统计链表的个数、删除链表。

你对这个回答的评价是

你对这個回答的评价是?

你对这个回答的评价是

居然亏在前驱这里。理解成叻p——>next = q,是说看着ad都是对的

删除操作是将单链表的第i个结点删除。先检查删除位置的合法性然后查找表中第i-1个结点,即被删结点的前驱结點再将其删除。其操作过程如图2-7所示
假设结点*p为找到的被删结点的前驱结点,为了实现这一操作后的逻辑关系的变化仅需修改*p的指針域,即将*p的指针域next指向*q的下一结点

实现删除结点的代码片段如下:

free (q) ; //释放结点的存储空间和插入算法一样,该算法的主要时间也是耗费茬查找操作上时间复杂度为O(n)。

其实我没看懂 “q所指结点是p所指结点的前驱结点” 的意思是什么。。

C是最常见的断链这是单链表,必须先赋值被插进去的元素再修改在双链表中可以从任意节点的元素。

感觉答案是不是错了是选C,但是赋值的先后顺序前后应该换下

我要回帖

更多关于 在双链表中可以从任意节点 的文章

 

随机推荐