摘要: (八)双链表算法之删除节点 算法分析代码实现 算法分析 和单链表的删除一样,双链表的删除节点也是分为两步:找到要删除的节点;删除找到的节点。如果删除的节点是尾节点 遍历找到尾部节点; 断开如图两处连接; 当前节点的前一节点指向NULL; 释放当前节点。如果删除的节点不是尾部节点 遍历找到要删除的节点 阅读全文
posted @ 2019-01-10 21:52 天星小苑 阅读(1463) 评论(0) 推荐(0) 编辑
摘要: (七)双链表算法之遍历 双链表正向遍历双链表逆向遍历 双链表正向遍历 正向遍历和单链表相同,详情见单链表。 1/* 2 *pH : 头节点 3 *return 返回尾部节点地址 4 */ 5struct node * list_for_each(struct *pH) 6{ 7 struct nod 阅读全文
posted @ 2019-01-10 21:03 天星小苑 阅读(618) 评论(0) 推荐(0) 编辑
摘要: (六)双链表的结构和插入节点 双链表结构双链表算法之插入节点(尾部插入)双链表算法之插入节点(头部插入) 双链表结构 双链表并不是有两个链表,而是有两个遍历方向的链表,因此我们说的双链表其实是双向链表的简称。 单链表节点 = 有效数据 + 指针(指向下一个节点) 双链表节点 = 有效数据 + 两个指 阅读全文
posted @ 2019-01-10 20:36 天星小苑 阅读(726) 评论(0) 推荐(0) 编辑
摘要: (五)单链接表算法之逆序 思路分析代码实现 思路分析 采用遍历+头插入。 遍历链表; 保存当前链表的后一个节点指针(pBack); 头插入之尾部链接; 头插入之头部链接 移动到下一节点p = pBack; 代码实现 1void reverse_list(struct node *pH) 2{ 3 s 阅读全文
posted @ 2019-01-10 13:57 天星小苑 阅读(282) 评论(0) 推荐(0) 编辑
摘要: (四)单链接表算法之删除节点 思路分析代码实现 思路分析 第一种情况:删除的节点不是尾节点 删除的节点不是尾节点 找到需要删除的某一节点; 保存删除节点的前一节点指针pPrev; pPrev-> pNext = p ->pNext; 释放当前节点内存;第二种情况:删除的节点是尾节点 删除尾节点 移动 阅读全文
posted @ 2019-01-10 13:07 天星小苑 阅读(347) 评论(0) 推荐(0) 编辑