前言
这是本人第一篇博客,旨在记录梳理自己学习数据结构的过程(c++实现),另一方面也能给有需要的小伙伴一些学习上的便利,大家一起互相学习!
单向链表
在动态分配内存空间时,最常使用的就是单向链表(single linked list)。一个单向链表节点基本由两个元素组成,即数据字段和指针,而指针将会指向下一个元素的内存所在地址。
在单向链表中第一个节点是链表头指针,指向最后一个节点的指针设为NULL,表示它是链表尾,不指向任何地方。
单向链表的创建与遍历
在c++中,若以动态分配产生链表节点的方式,可以先行定义一个类数据类型,接着在类中定义一个指针变量,其数据类型与此类相同,作用是指向下一个链表节点,另外类中至少要有一个数据字段。例如,声明一个书籍链表节点的结构,则数据字段可能包含下面三个:书名(title)、作者(author)、价格(price),以及一个指针(next)。之后就可以动态创建链表的每个节点。
遍历(traverse)单向链表的过程,就是使用指针运算来访问链表中的每一个节点,为了便于操作,可以定义一个指针变量作为链表的读取游标。
本文为了用最简单的范例展示单向链表的创建与遍历,链表结构采用一个数据一个指针的形式,具体实现代码如下所示:
实现代码
#include<iostream>
using namespace std;
class list{
//定义链表结构
public:
int data;
class list *next;
};
typedef class