C++单链表的建立和遍历
C++单链表的建立和遍历
开发工具与关键技术:C++、VisualStudio
作者:何任贤
撰写时间:2019年05月10日
链表是以struct或class数据结构为基础的动态数据结构,它的存储方式是以节点形式存储,节点分为两部分,一部分是数据,另一部分是用于指向下一个节点的指针,链表有三种形式分别是单链表、双链表和环链表。
这里讲的是单链表,单链表的单指的单向,意思是该链表的节点的指针部分只是指向下一个,并且最后一个节点的的指针部分指向的是空。
单链表的建立和遍历:
#include
using namespace std;
class one_way
{
public:
int a = 0;
static one_way *head;
one_way *next = NULL;
};
one_way *one_way::head = NULL;
void main()
{
int b = 1;
one_way *x = NULL, *y = NULL;
for (int i = 0; i < 5; i++)
{
x = new one_way;
x->a = b;
x->next = NULL;
if (one_way::head !=NULL)
{
y = one_way::head;
while (y->next != NULL)
{
y = y->next;
}
y->next = x;
}
else
{
one_way::head = x;
}
b++;
x = NULL;
delete x;
y = NULL;
}
y = one_way::head;
while (y !=NULL)
{
cout << y->a << " ";
y = y->next;
}
}
首先我创建一个名为one_way的类,类里面声明了访问属性为公有的int a、static one_way *head和one_way *next变量和指针,a就是节点的数据部分,而haed和next是节点的指针部分,head指针就是头指针的意思,作用是指向第一个节点,并且它是静态的,next指针作用则是指向下一个节点。
在主函数中的for循环是用来创建节点的,循环创建五个节点,x = new one_way;动态申请内存,这个申请内存就是创建节点的意思,x->a = b;是给节点的数据部分赋值, 等于给节点的数据部分写入数据,因为这里是给链表中最后一个节点添加新的节点,那么新的节点就成为了最后一个节点,所以next指向的是空。
if判断的是头指针是否为空,如果头指针是空的话,我就可以直接给头指针赋值就行,如果不是我们则要找到最后一个节点,再给最后一个节点的next赋值,for循环里面的while循环是用来遍历链表,就是用来找到最后一个节点的
然后最后一个while循环就是用来遍历输出链表中节点的数据。
最后是该单链表的示意图
C++单链表的建立和遍历相关推荐
- 9006:单链表的建立和遍历
Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 输入数据有多组,每组数据占两行:每组第一行为一个数字N(0< ...
- C语言数据结构 单链表的建立、遍历、查找、插入和删除操作
参考文献 本博文为半摘记性质 -- 声明:全文主干部分摘自 [1] 杨智明. 数据结构(C语言版)[M]. 第一版. 北京:北京理工大学出版社, 2016. [2] 严蔚敏, 李冬梅, 吴伟民. 数据 ...
- java实现单链表的建立(头插法和尾插法)
单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...
- 单链表的建立、排序和翻转
链表: 1.注意是否有带头结点. 2.单链表的建立:顺序建表(尾插法).逆序建表(头插法). 3.单链表的插入.删除操作需要寻找前驱结点. 单链表的建立.排序和翻转,都是针对有头结点的单链表. #in ...
- 单链表的插入和遍历 包括头插入和尾插入
// Win32Project1.cpp : 定义控制台应用程序的入口点. // //单链表的插入和遍历 #include "stdafx.h" #include <AccC ...
- #数据结构:编写不带头结点单链表的建立、插入和删除算法
编写不带头结点单链表的建立.插入和删除操作算法. 一.问题描述 编写一个不带头节点的单链表 二.基本要求 1) 建立 2) 插入 3) 删除 三.算法思想 选用不带头结点的单链表,在第一个元素节点前插 ...
- 线性表基本操作,单链表的建立(头插法,尾插法)、插入、删除、遍历操作的实现(c++ 数据结构 实验二)
大学数据结构课程的实验题目,掌握线性表的链接存储结构,用c++语言描述 一.实验要求 1.分别用头插法和尾插法建立一个含有若干结点的单链表 2.对已建立的单链表进行插入.删除.遍历输出等操作 二.代码 ...
- 不带头结点的单链表的建立
建立该链表利用的是尾插法 // 创建一个单链表,没有头结点, #include <iostream> #include <ctime>using namespace std; ...
- 单链表的建立(C语言):头插法和尾插法建立单链表
采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示. 图2-4 头插法建立单链表 头插法建 ...
最新文章
- No field mFactorySet in class问题解决(上)
- iOS开发者工具功能详述
- Winform中使用Mysql.Data.dll实现连接Mysql数据库并执行sql语句(排除ddl等非法语句的执行)
- windows 2012 如何设置取消禁拼ping
- 怎么引jsp包_电机引接线的制作流程防护等级
- 创建一个地震Viewer
- python查看帮助文档:help(命令)
- Drool学习记录(二) Kie Session、Truth maintenance
- oracle系统FA调整折旧年限,Oracle财务管理系统培训手册.doc
- 双本振双输出后接八切一影响其它端口信号
- 动词不定式 to do 和 动名词 V-ing 的区别(infinitive vs gerund)
- 卡卡卡的wordpress
- dbind-WARNING **: Error retrieving accessibility bus address
- 苹果在线商店开售官方翻新Retina MacBook Pro
- 【串讲总结】涵盖ML/DL/NLP/推荐/风控/数学等知识点汇总列表
- 基于IjkPlayer的多路投屏直播
- 二叉排序树中查找效率最高的是
- 空指针异常是什么意思
- PS 2019 Mac版 自学入门系列(三)——插入对象
- 脉冲宽度调制PWM的原理及应用