链表创建、逆置、删除详解
***************************************************
更多精彩,欢迎进入:http://shop115376623.taobao.com
***************************************************
对链表的理解:http://www.nowamagic.net/librarys/veda/detail/2220
#include <stdio.h>
//结构体,用整数作数据
//定义节点
typedef struct tNODE
{
int data;
struct tNODE *next;
}NODE;
//删除 链表 ,回收空间
void clear(NODE *head)
{
NODE *p;
while(head)
{
p=head->next;//保存下一个结点的地址
free(head);//删除最先的一个结点
head=p;//指向下一个结点
}
}
//输出整个 链表 中的数据
void write(NODE *head)
{
NODE *p;
p=head->next;//因为使用带 头结点 的 链表 ,所以要跳过第一个结点
while(p)
{
printf("%d ", p->data);
p=p->next;//后移
}
printf("\n");
}
// 链表 逆序
void reverse(NODE *head)
{
NODE *p, *q, *r;
if(head->next)//至少有一个数据
{
p=head->next;//p指向第一个数据结点
q=p->next;//q指向第二个结点
p->next=NULL;//第一个结点逆序后当然就是最后一个
while(q)
{
r=q->next;//r指向第三个结点
q->next=p;//第二个结点的链指针指向第一个
p=q;//p指向第二个结点
q=r;//q指向第三个结点
}
head->next=p;//让始终没理的 头结点 连到最后一个结点上
}
}
//生成 链表 ,以-1表示结束
NODE *create()
{
NODE *h, *t;
int x;
h=malloc(sizeof(NODE));//建立 头结点
t=h;
scanf("%d", &x);
while(x!=-1)
{
t->next=malloc(sizeof(NODE));
t=t->next;
t->data=x;
scanf("%d", &x);
}
t->next=NULL;
return h;
}
int main()
{
NODE *head;
head=create();
write(head);
reverse(head);
write(head);
clear(head);
return 0;
}
链表创建、逆置、删除详解相关推荐
- 【数据结构】单链表逆置的详解
单链表的逆置 将单链表逆置: 定义一个前指针和一个后指针用来辅助工作指针 //头文件 #ifndef LINKLIST_H_INCLUDED #define LINKLIST_H_INCLUDEDst ...
- python创建双链表_Python双链表原理与实现方法详解
本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...
- 序列内置方法详解(string/list/tuple)
一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...
- python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小.>>> abs(-25) 25>> ...
- 试写一算法,对单链表进行逆置
NOTICE: 本篇代码是按照源码的书写顺序所写,复制之后可直接运行. 环境: vscode 题目: 试写一算法,对单链表进行逆置 分析: 单链表的逆置需要设置两个指针,第一个进行遍历单链表:第二个进 ...
- Python内置函数详解——总结篇
引 言 国庆期间下定决心打算学习Python,于是下载安装了开发环境.然后问题就来了,怎么开始呢?纠结一番,还是从官方帮助文档开始吧.可是全是英文啊,英语渣怎么破?那就边翻译边看边实践着做吧(顺便 ...
- 无头结点单链表的逆置_单链表的增删查 逆置 倒数第k个节点等问题
对于单链表而言,它没有双链表那么复杂,它只有头节点,尾节点,节点数据,后继指针.在下面本人实现了 单链表的 增 删 插 查 改. #include #include #include #i ...
- 创建emp表 oracle,Oracle中创建和管理表详解
Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16 作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...
- SDUT_2118 数据结构实验之链表三:链表的逆置
点击打开链接 数据结构实验之链表三:链表的逆置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem De ...
- python列表的内置方法_Python内置方法详解
1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...
最新文章
- 多元统计分析最短距离法_聚醚多元醇的合成
- 2014-3-13 星期四 晴 [取舍 果断]
- Linux中sort、uniq、cut、wc命令详解
- context set_parameter all_req_parameters /iwfnd/if_sodata_types=gcs_iwf_context
- 智能会议系统(24)---linphone-去掉蓝牙功能
- 修改tomcat控制台title的方法
- 操作系统 第二章 进程管理
- 轻薄于型 强悍于内 拯救者9000X 2021硬核发布
- 比特币创业公司Circle首获数字货币许可证
- ×××购回“四不像”笔记本
- java矩阵连乘算法_矩阵连乘(java实现)
- MRI_Made_Easy 磁共振成像原理-物理基础4
- Thinkphp5中session用法
- Vue3中获取鼠标在浏览器x轴和y轴的位置
- 工作效率低,怎么办?
- 【Data truncation: Data too long for column ‘XXX at row 1 报错】
- 创业过程中不要被理想主义所牵绊
- python账号怎么注销_登录后如何注销
- 基于Python实现的实时聊天系统
- 05 占空比可调的整数奇偶分频器设计与功能验证(附源码)
热门文章
- C#任务调度——LimitedConcurrencyLevelTaskScheduler
- AC日记——字符串P型编码 openjudge 1.7 31
- Protocol Buffer技术详解(C++实例)
- BZOJ4107 : [Wf2015]Asteroids
- [其它] - 为什么中国的程序员技术偏低
- Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
- 一份从 0 到 1 的 Java 项目实践清单
- 分析数据库CitusDB:提供弹性计算能力
- python cookbook 笔记三
- 【原创】注意析构函数的使用