C/C++ 链 表 头插法 尾插法
写这篇是为了给还在为理解链表而发愁的同学们节约时间,我在学习链表的时候也是一头雾水,尽管书上,视频里都有讲解,但是你们有没有发现都是狗屁官方语言,对帮助理解没有多大作用,许多其他的学习也类似就不说编程了,作为一名读过多年书的你是不是也这样感觉,那这次我将源代码全部写下来,注释也是用最好理解的白话写的希望能帮助到你。
#include "stdafx.h"
#include"iostream"
using namespace std;
struct Node
{
int data;
Node*next;
};
Node*Phead=NULL;//一开始没有节点 先设定一个空节点作为头节点 此头节点 数据data=NULL,next=NULL;
void Addhead(int d)//头插法
{
Node*p=(Node*)(malloc(sizeof(Node)));
p->data=d;
p->next=Phead;//{ 将现有头的NULL赋值给该新申请的next,使之为空即使该数据成为尾结点(仅仅对插入的第一个数而言)},但而后插入的数据的next指向上一个数据,因为Phead值不再为NULL这也是一不小心最不容易理解的地方
Phead=p;//将现申请的空间赋给头节点;使之下一次访问头结点从该数据开始,形成链表,即使该节点成为头结点
}
void Addtail(int d)//尾插入
{ Node*p=Phead;
while(p->next!=NULL)//寻找尾结点(尾结点的特点是next=NULL)
{p=p->next;}
Node*pnew=(Node*)(malloc(sizeof(Node)));//为新数据申请空间
pnew->data=d;
pnew->next=NULL;//使新数据成为尾结点
p->next=pnew;//使上一个数据的next指向新数据 形成链表
}
void display()
{
Node*p=Phead;
while(p!=NULL)//判断节点是否为空 不是空就打印输出
{
cout<<p->data <<" ";
p=p->next;
}
}
int main()
{
Addhead(6);
Addhead(5);
Addhead(4);
display();
Addhead(3);
Addhead(2);
Addhead(1);
display();
Addtail(7);
Addtail(8);
Addtail(9);
display();
system("pause");
return 0;
}
C/C++ 链 表 头插法 尾插法相关推荐
- 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...
上海电力学院计算机软件技术实验三用头插法和尾插法创建线性表 #include #define MAXLEN 9 struct table {int key; int othererm; } ; typ ...
- 头插法和尾插法创建链表(有无头结点)
头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...
- java实现单链表的建立(头插法和尾插法)
单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...
- C语言的单链表创建:头插法/尾插法
文章目录 前言 链表头插法 链表尾插法 源码实现 前言 接下来一段时间,将对数据结构进行复习,总的来说数据结构自大学之后忘记得有点吓人,为了防止脑容量本就小得脑袋更小,必须得持续性得温故了. 链表数据 ...
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...
- 单链表头插法和尾插法
1.头插法 头插法:每次把新节点插入到头节点之后,创建的单链表和数据输入顺序相反. 防止单链表是空的而设的. 当链表为空的时候,带头结点的头指针就指向头结点,头结点的指针域存储的数值为NULL. &l ...
- 线性表中的尾插法双链表的学习
#include <stdio.h> #include <malloc.h>/*** 线性表中的尾插法双链表的学习 *//*** 人类*/ typedef struct Per ...
- 线性表中的尾插法单链表的学习
#include <stdio.h> #include <malloc.h>/*** 线性表中的尾插法单链表的学习 *//*** 人类*/ typedef struct Per ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
- 头插法和尾插法的详细区别
浅析线性表(链表)的头插法和尾插法的区别及优缺点 线性表作为数据结构中比较重要的一种,具有操作效率高.内存利用率高.结构简单.使用方便等特点,今天我们一起交流一下单向线性表的头插法和尾插法的区别及优缺 ...
最新文章
- nprogress.js 头部进度条使用方法
- boost::coroutine模块实现power的测试程序
- 开源特训营 - Lesson 4 - 如何运营社区
- js中的Promise简单总结(ES6)
- [C++] GCC multilib
- Android开发笔记(一百四十七)标签布局TabLayout
- 浏览网页时,手机显示手机被恶意攻击,不停震动,一直弹出应用要我下载,有没有问题?
- bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)
- 〖Demo〗-- 多级评论
- mysql性能剖析工具_MySQL性能剖析工具(pt-query-digest)【转】
- blktrace 深度了解linux系统的IO运作
- java三级 高级证书6_java web 学习 --第六天(Java三级考试)
- 计算机考研数据结构教材,2016计算机考研:数据结构参考书及复习重点
- 大数据工程师成长之路
- C++ primer 5th 读完的一点心得体会
- 最新EyouCMS发布工具
- js怎么获取扫码枪条码_如何使用JavaScript获取扫码枪扫描得到的条形码
- oracle联合分组查询,Oracle分组查询
- ios版塔防类游戏源码
- LaTex 编译 bib 参考文献
热门文章
- Hive 优化(通用版)
- MaxCompute SQL大数据公开数据集实战
- 《AV1 Bitstream Decoding Process Specification》,译名:AV1比特流及解码规范-Chapter 05-语法结构-Section 01~08
- 如何评估服务端压测指标
- 1028: 安全路径(2014年中南大学研究生复试机试题 )
- 云效应用交付平台 AppStack 之发布流水线
- MYSQL学习记录(8)
- AD中的机械尺寸定位的使用
- 键盘调节台式计算机声音,电脑键盘打字声音特效_键盘打字声音特效
- SecureBoost: A Lossless Federated Learning Framework论文笔记