删除带头结点的单链表的奇数结点
【单链表算法】设带头结点的非空单链表 L,设计一个算法删除 L 中奇数序号
的结点,即删除 L 中第 1、3、5…结点。
#include<stdio.h>
#include<malloc.h>typedef struct node {int data;struct node* next;}node; // 定义结构体 node* creat(int length) { // 创建链表函数 node* p;int n;if (length < 1)return NULL; // 如果链表长度小于1的话,返回空 node* head = (node*)malloc(sizeof(node)); // 开辟头结点的链表单元 head->next = NULL;node* temp = head; //定义中间链表指针 int i = 1;printf("请输入%d个整数:\n");while (i <= length) {p = (node*)malloc(sizeof(node)); // 开辟新的结点 scanf_s("%d", &n); p->data = n;temp->next = p;temp = p; // 使用temp不断地进行遍历 i++;}temp->next = NULL; // 尾指针下一个指向空 return head;
}void delete(node*L){node*pre=L,*p=pre->next; // pre指向头节点,p指向头指针的下一个 while(p!=NULL){pre->next=p->next; free(p); // 删除结点p,并释放p pre=pre->next; // 跳过偶数结点的指针 if(pre==NULL)break; // 遍历完退出 p=pre->next;}
}void Print(node* L) {node* p;p= L->next;if (p==NULL){printf("链表中没有元素!");return;}while (p) {printf("%d ", p->data);p = p->next;}}
删除带头结点的单链表的奇数结点相关推荐
- c语言 链表 无头结点,C++ 单链表(无头结点)
/* 单链表(无头结点) */ #include #include #include using namespace std; struct LNode { int data; // 数据域 LNod ...
- java带头结点的单链表_自己实现集合框架 (五): 带头结点单链表的实现
这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...
- 2.3 带头结点的单链表:理论+编程实战(C语言详细)
1.顺序存储:线性表/栈/队列:理论+C语言实现–详细 2.1 链式存储概述 和 2.2 线性表的链式存储–单链表(C语言详细实现) 文章目录 2.3 带头结点的单链表 1. 带头结点的单链表基本概念 ...
- java带头节点的单链表_自己实现集合框架(五):带头结点单链表的实现
这是系列文章,每篇文章末尾均附有源代码地址.目的是通过模拟集合框架的简单实现,从而对常用的数据结构和java集合有个大概的了解.当然实现没有java集合的实现那么复杂,功能也没有那么强大,但是可以通过 ...
- C语言实现了一个具有头结点的单链表(附完整源码)
实现了一个具有头结点的单链表 有头结点的单链表 实现了一个具有头结点的单链表完整源码 有头结点的单链表 线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中的任 ...
- 带头结点的单链表删除
题目:在带头结点的单链表L中,删除所有值为X的节点,并释放其空间,假设值为X的节点不唯一 分析: 和上题相似,只是多了一个头结点.另我们可以采取直接遍历的方式进行删除,设置前驱结点,当 ...
- 带头结点的单链表的初始化,建立,插入,查找,删除
//带头结点的单链表的初始化,建立,插入,查找,删除 #include <stdio.h> #include <stdlib.h> typedef int El ...
- 【C语言】数据结构C语言版 实验3 带头结点的单链表
slnklist.h #include <stdio.h> #include <stdlib.h> /************************************* ...
- c语言实现--不带头结点的单链表操作
1,不带头结点的单链表操作中,除了InitList(),GetElem(),ListInsert(),ListDelete()操作与带头结点的单链表有差别外,其它的操作基本上一样. 2,不带头结点单链 ...
最新文章
- 2018年跨行学习mysql_2018年,让你的数据库变更快的十个建议
- JavaScript简明教程之快速入门
- 【ABAP实例】SAP调用RESTful API测试用例
- markdown写法
- firefox 扩展_如何检查您的扩展程序是否将停止与Firefox 57一起使用
- Failed to issue method call Unit mysql service failed to lo
- ROS:定制自己的消息类型msg
- eclipse -- git 提示
- OSPF实验:OSPF认证
- ssm(spring + spring-mvc + mybatis)整合
- 得力计算机无法开机,得力针式打印机常见问题及解决方法
- Iptables 指南 1.1.19
- Python 的切片为什么不会索引越界?
- 【STM8】STM8在STVD平台生成HEX和S19文件的方法
- SAP SD客户主数据
- 电脑c盘满了变成红色了怎么清理?看看这7个方法
- iar 预编译会把非条件的去掉_IAR使用最全方法.docx
- 2022-2028全球及中国葡萄种植市场研究报告
- AccountManager教程
- Shader头发效果