数据结构 链表学习总结

数据结构 链表学习总结

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

前言

线性表是数据结构中最基础也是最常见的一种结构,它像一根“线”把数据像“串珠子”一样串联了起来。根据数据在内存中是否连续,可以把线性表分为:顺序表和链表 ,本文详细介绍链表。

1. 链表介绍

1.1 什么是链表

链表(linked list),将数据如同锁链一样串联起来,每一个存储数据的节点不仅存储的数据(数据域)还存储着下一个节点的内存地址(地址域)。因此,各个节点可以保存在内存中的不连续地址上。

单链表示意图

如同这个示意图,所有节点的地址域中只保存了下一个节点的地址并且尾节点的地址域中保存的是NULL的链表称为:单链表。在单链表的基础上,尾节点保存了首节点地址的链表叫做“循环链表“;每个节点不仅保存了下一个节点的地址,还保存了上一个节点的地址的链表叫做”双向链表“。

单链表是链表的基础形式,本文着重介绍单链表。

1.2 链表的性质

  • 链表在内存中可以是连续的,也可以是不连续的。

  • 链表通过数据域中的地址访问节点,因此不同节点的数据域中的数据类型可以是不同的。

  • 相较于顺序表,链表的存储空间内既有数据又有地址,因此它的存储密度小于1.

1.3 链表的构成

链表主要由两部分组成:

  • 节点
  • 首节点的地址

1.4 单链表的框架代码(C++版)

#include <iostream>
#include<iostream>
using namespace std;
// 节点
template <typename Type> class Node {
   
public:
    Type data;					// 数据域
    Node<Type> *next;			// 地址域
    Node(const Type &_data) {
   	// 通过构造函数初始化一个节点
        data = _data;
        next = NULL;
    }
};
// 链表
template <typename Type> class LinkedList {
   
private:
    Node<Type> *head;							// 首节点的地址
public:
    LinkedList() 								// 构造函数
    ~LinkedList() 								// 析构函数
    bool insert(Node<Type> *node, int index) 	// 在链表中插入节点
    void output() 								// 输出链表中所有节点的数据
    bool 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值