【C语言】删除一个节点(仅一个)(单向物理链式结构)
来源:互联网 发布:java软件工程师培训班 编辑:程序博客网 时间:2024/06/05 14:32
/* * 单向物理链式结构演示 * 步骤:定义结构体->定义结构体变量->链接->写循环->用if去除尾部,对剩余的进行处理 * 提示: 处理单一节点的时候只需处理p_mid即可,处理某个位置的时候处理p_first和p_mid中间的位置 * */#include <stdio.h>typedef struct node { int num; struct node *p_next;}node;int main() { node head = {0}, tail = {0}, node1 = {20}, node2 = {40}, node3 ={60}, node4 = {50}; node *p_node = NULL; head.p_next = &node1; node1.p_next = &node2; node2.p_next = &node3; node3.p_next = &tail;/************************************************************************************ * 删除一个节点 ************************************************************************************/ for(p_node = &head; p_node != &tail; p_node = p_node->p_next) { node *p_first = p_node; node *p_mid = p_first->p_next; node *p_last = p_mid ->p_next; if(p_mid != &tail && p_mid->num == 40) {//当p_mid->num的值和要删除的值相等时删除,特殊情况:链路中没有要删除的值,但是这个值正好和尾节点里的值相等时,尾节点就被删除了 p_first->p_next = p_last;//此方法只能删除一个节点 break; } } for(p_node = &head; p_node != &tail; p_node = p_node->p_next) { node *p_first = p_node; node *p_mid = p_first->p_next; node *p_last = p_mid->p_next; if(p_mid != &tail) { printf("%d ", p_mid->num); } } printf("\n"); return 0;}
阅读全文
0 0
- 【C语言】删除一个节点(仅一个)(单向物理链式结构)
- 【C语言】从小到大插入新节点(链式物理结构)
- 【C语言】循环添加节点(链式物理结构)
- 链式物理结构(动态分配节点)
- 删除一个无头单链表的非尾节点(C语言)
- 链式物理结构(元素查找、元素删除、元素插入)
- C语言一个队列的实现(链式)
- 【数据结构】单向线性链式物理结构list
- Stack-c单向链式结构
- 数据结构实验二 链式存储结构----单向链表的有关操作(学生成绩信息C语言)
- C语言:【单链表】删除一个无头单链表的非尾节点
- 【算法之链表(三)】单链表中,在仅允许使用一个指针的情况下,在指定的节点前面插入以及删除一个节点
- 在无头单链表的一个非头节点前插入一个节点(C语言)
- 给定一个单向链表,目前已经有一个指针,指向某一个节点(记作A),现在要删除这个节点A,如何操作。
- 单向链表在O(1)时间内删除一个节点
- O(1)时间内删除单向链表中的一个节点
- Day16、文件拷贝、数据结构(逻辑结构、物理结构)顺序物理结构、链式物理结构
- C语言实现一个链式队列
- 01背包跟完全背包问题
- maven生命周期及pom.xml解析
- 条款04:确定对象被使用前已先被初始化
- Windows7下安装与破解IntelliJ IDEA2017
- 【数据结构】中删除小写字母字符串中重复字符
- 【C语言】删除一个节点(仅一个)(单向物理链式结构)
- IntelliJ IDEA 2017激活的正确姿势
- Servlet、Struts1、Struts2、SpringMVC运行原理
- RecyclerView 中adapter.notifyDataSetChanged()无效的问题
- 条款05:了解C++默默编写并调用哪些函数
- python爬虫系列二
- 用IDEA和命令行进行nodejs项目搭建
- 第一篇文章
- 单点登录实现原理