单链表(三)——链表的删除
2015-09-13 09:55
295 查看
/********************************************************************* * 函数名称:linklist *DeleteLoc(linklist *head, int Loc) * 函数功能:在链表的指定位置删除结点 * 参 数:head----链表的头结点 Loc-----需要删除的结点所在的位置,范围为1~N(N为链表长度) * 返 回 值:删除指定位置结点后的链表的头结点 * 说 明:无 *********************************************************************/ linklist *DeleteLoc(linklist *head, int Loc) { linklist *tmp=head, *p=head; // 两个临时结点 int LinklistLen=0; // 初始化链表长度 if(head==NULL) { printf("待插入的链表为空,删除不成功!"); return NULL; } // 计算链表长度 while(tmp->next!=NULL) { LinklistLen++; tmp = tmp->next; } // 如果输入的删除结点位置小于等于0(0表示头结点)或超出链表长度,打印错误信息,并返回链表头结点 if(Loc<=0 || Loc>LinklistLen) { printf("请输入正确的要删除的结点位置(1~%d)!删除不成功!", LinklistLen); return head; } // 获取待删除结点的前驱结点 while(--Loc) p = p->next; // 将待删除结点的前驱结点指向待删除结点的后继结点,也即删除待删除的结点 p->next = p->next->next; return head; // 返回删除指定结点后的链表头结点 }
相关文章推荐
- linux 系统编程1
- C++虚函数表
- 数据结构(与算法)可视化
- 谷歌新Logo如何做到只有305字节
- JVM分代垃圾回收策略的基础概念
- Python 实现栈
- ios-post请求
- Effective C++ 条款53 不要轻忽编译器的警告
- 单链表(二)——链表的插入
- 三层及winform前台页面 XmlHelper.cs Sqlhelper.cs AbstractSqlHelper.cs Com.cs 分页控件的后台代码
- trace: Add user-space event tracing/injection
- nginx 与 lua 开发环境搭建
- MySQL安装失败的解决
- 设定溢出属性和可见性属性
- 02关于正则表达式(第二则)常用正则表达式
- k个最大的m段子数组和
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
- 01关于正则表达式(第一则)
- nyoj 20 【吝啬的国度】 【DFS】
- 第三十六天 网络连接、单线程、多线程下载