数据结构入门(六)——线性结构(1)——链表相关概念

前言

本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正



什么是线性结构

  • 所有的节点连在一根“线”上
  • 一个逻辑结构可以用于多种存储结构,线性结构中的线性表可以采用连续存储存储(数组)离散存储(链表)

bool类型

  • 使用时需添加“stdbool.h”这个头文件
  • 返回逻辑“真”“假”

typedef函数

#include<stdio.h>

typedef int abc;    //为固定句式再起一个名字,减少后续的工作量

int main() 			//原有的名字可以继续使用
{
    
    
    abc ccc = 6;

    printf("%d",ccc);
    
    return 0;
}

运行结果为

6

链表

离散存储(链表)

  • 各个数据在内存中不是连续存储的

何为链表

  • 特点
  1. 节点之间离散存储
  2. 各个节点通过指针相连
  3. 每个节点只的首尾只有一个节点与其相连
  4. 首节点之前没有节点,为节点之后没有节点
  • 术语:
  1. 首节点(存放有效数据的第一个节点)
  2. 尾节点(最后一个有效节点)
  3. 头节点(仅存放首节点的位置信息,不存放其他任何信息,方便对链表进行操作)
  4. 头指针(指向头节点的指针变量)
  5. 尾指针(表示链表的结束,一般为NULL)
    在这里插入图片描述
  • 确定链表仅需一个参数即可: 头指针,因为链表是概念上首位相接的,因此知道了头指针就能推出后面的链表**
  • ↑人话来说就是函数间传递链表的时候仅需传递头指针即可↑

链表的分类

  • 单向链表(单行道)
    在这里插入图片描述

  • 双向链表(除头节点外每个节点有两个指针域,双行车道)
    在这里插入图片描述

  • 循环链表(通过任何一个节点都能找到其他节点,绕地球一圈会回到原地)

在这里插入图片描述

  • 非循环链表

链表的节点(单向)

  • 除头节点外每个单向链表的节点都分为两个部分:指针域数据域分别存放指针变量和数据
  • 头节点仅包含指针域
    在这里插入图片描述

表示链表的结构代码

#include<stdio.h>
struct node
{
    
    
   int data;			    //数据域	

   struct node * Next;		//指针域
};

猜你喜欢

转载自blog.csdn.net/qq_40016124/article/details/113133937
今日推荐