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++单链表的建立和遍历相关推荐

  1. 9006:单链表的建立和遍历

    Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据.  Input 输入数据有多组,每组数据占两行:每组第一行为一个数字N(0< ...

  2. C语言数据结构 单链表的建立、遍历、查找、插入和删除操作

    参考文献 本博文为半摘记性质 -- 声明:全文主干部分摘自 [1] 杨智明. 数据结构(C语言版)[M]. 第一版. 北京:北京理工大学出版社, 2016. [2] 严蔚敏, 李冬梅, 吴伟民. 数据 ...

  3. java实现单链表的建立(头插法和尾插法)

    单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...

  4. 单链表的建立、排序和翻转

    链表: 1.注意是否有带头结点. 2.单链表的建立:顺序建表(尾插法).逆序建表(头插法). 3.单链表的插入.删除操作需要寻找前驱结点. 单链表的建立.排序和翻转,都是针对有头结点的单链表. #in ...

  5. 单链表的插入和遍历 包括头插入和尾插入

    // Win32Project1.cpp : 定义控制台应用程序的入口点. // //单链表的插入和遍历 #include "stdafx.h" #include <AccC ...

  6. #数据结构:编写不带头结点单链表的建立、插入和删除算法

    编写不带头结点单链表的建立.插入和删除操作算法. 一.问题描述 编写一个不带头节点的单链表 二.基本要求 1) 建立 2) 插入 3) 删除 三.算法思想 选用不带头结点的单链表,在第一个元素节点前插 ...

  7. 线性表基本操作,单链表的建立(头插法,尾插法)、插入、删除、遍历操作的实现(c++ 数据结构 实验二)

    大学数据结构课程的实验题目,掌握线性表的链接存储结构,用c++语言描述 一.实验要求 1.分别用头插法和尾插法建立一个含有若干结点的单链表 2.对已建立的单链表进行插入.删除.遍历输出等操作 二.代码 ...

  8. 不带头结点的单链表的建立

    建立该链表利用的是尾插法 // 创建一个单链表,没有头结点, #include <iostream> #include <ctime>using namespace std; ...

  9. 单链表的建立(C语言):头插法和尾插法建立单链表

    采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示. 图2-4  头插法建立单链表 头插法建 ...

最新文章

  1. No field mFactorySet in class问题解决(上)
  2. iOS开发者工具功能详述
  3. Winform中使用Mysql.Data.dll实现连接Mysql数据库并执行sql语句(排除ddl等非法语句的执行)
  4. windows 2012 如何设置取消禁拼ping
  5. 怎么引jsp包_电机引接线的制作流程防护等级
  6. 创建一个地震Viewer
  7. python查看帮助文档:help(命令)
  8. Drool学习记录(二) Kie Session、Truth maintenance
  9. oracle系统FA调整折旧年限,Oracle财务管理系统培训手册.doc
  10. 双本振双输出后接八切一影响其它端口信号
  11. 动词不定式 to do 和 动名词 V-ing 的区别(infinitive vs gerund)
  12. 卡卡卡的wordpress
  13. dbind-WARNING **: Error retrieving accessibility bus address
  14. 苹果在线商店开售官方翻新Retina MacBook Pro
  15. 【串讲总结】涵盖ML/DL/NLP/推荐/风控/数学等知识点汇总列表
  16. 基于IjkPlayer的多路投屏直播
  17. 二叉排序树中查找效率最高的是
  18. 空指针异常是什么意思
  19. PS 2019 Mac版 自学入门系列(三)——插入对象
  20. 脉冲宽度调制PWM的原理及应用

热门文章

  1. 【ARM-Linux开发】内核3.x版本之后设备树机制
  2. HTML Canvas
  3. mysql6.5 操作日志
  4. Activiti-01
  5. Struts Validator验证器使用指南
  6. 超长数列中n个整数排序C++代码实现
  7. 软件如何控制硬件、编译器和操作系统是否需要编译
  8. AlexNet代码解读
  9. “悬空指针”和“野指针”究竟是什么意思?有什么区别
  10. Matlab错误:Y must be a vector or a character array