美文网首页Android进阶
线性表的存储结构

线性表的存储结构

作者: 程序员丶星霖 | 来源:发表于2020-09-04 16:35 被阅读0次

一、线性表的定义

线性表是具有相同特性数据元素的有限序列。

  • 相同特性:把同一类事务归类,方便批量处理。
  • 有限:表中元素个数为n,n有限大,n可以为0。
  • 序列:表中元素排成一列,体现了一对一的逻辑特性(每一个元素有则仅有一个前驱和一个后继)。

二、存储结构

2.1、顺序存储结构

顺序存储结构可以使用数组加length实现。

A B C ... X ...
0 1 2 ... length-1 ... maxSize-1
int A[maxSize];
int length = 0;

2.2、链式存储结构

链式存储结构可以通过自引用类型实现。

(1)单链表

有头结点的单链表:

有头结点单链表.png

无头结点的单链表:


无头结点单链表.png

单链表的实现如下:

typedef struct DLNode {
    int data;
    struct DLNode* next;
    struct DLNode* prior;
} DLNode;

    // 以下是伪代码
    DLNode *L;
    L = (DLNode*)malloc(sizeof(DLNode));
    A->next = B;
    B->next = C;
    C->next = D;
    D->prior = C;
    C->prior = B;
    B->prior = A;

有头结点的单链表的头结点判空:

Head->next = NULL;  为真

无头结点的单链表的头结点判空:

Head == NULL;  为真

(2)双链表

有头结点的双链表:


有头结点双链表.png

无头结点的双链表:


无头结点双链表.png

双链表的实现如下:

typedef struct DLNode {
    int data;
    struct DLNode* next;
    struct DLNode* prior;
} DLNode;

//伪代码
    DLNode *L;
    L = (DLNode*)malloc(sizeof(DLNode));
    A->next = B;
    B->next = C;
    C->next = D;
    D->prior = C;
    C->prior = B;
    B->prior = A;

有头结点的双链表的头结点判空:

Head -> next == NULL;  为真

无头结点的双链表的头结点判空:

Head == NULL;  为真

(3)循环链表

有头结点的单双循环链表:

有头结点的单双循环链表.png

无头结点的单双循环链表:

无头结点的单双循环链表.png

有头结点的单双循环链表的头结点判空:

  • 单循环链表:
Head -> next == Head;  为真
  • 双循环链表:
Head -> next == Head;  为真

或

Head -> prior == Head;   为真

无头结点的单双循环链表的头结点判空:

Head == NULL;  为真

我的博客:http://www.coderlearning.cn/

我的简书

我的微信公众号.jpg

相关文章

  • 数据结构和算法之一——线性表_2_顺序结构存储

    线性表存储结构分类线性表有两种物理存储结构:1)顺序存储结构;2)链式存储结构 顺序存储结构2.1定义:线性表的顺...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构之有序线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构以及线性表的链式存储结构,今天接着写有序线性表的链式存储结 ...

  • 数据结构与算法(二)--- 单向循环链表

    线性表 线性表分为顺序存储结构和链式存储结构 存储方式 顺序存储结构用一段连续的存储单元依次存储线性表的数据元素;...

  • 线性表的链式存储--单链表

    Java之线性表的链式存储——单链表 我们都知道,线性表的存储结构分为两种,顺序存储结构和链式存储结构,线性表的分...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 线性表--顺序存储结构

    一、线性表的顺序存储结构 线性表有两种物理存储结构:顺序存储结构和链式存储结构。 顺序存储结构 ①定义:用一段地址...

  • 数据结构之线性表

    线性表 线性表:零个或多个数据元素的有限序列线性表的两种存储结构:顺序存储&链式存储 单链表结构&顺序存储结构对比...

  • 数据结构与算法-C语言6-线性表之链式存储结构

    数据结构与算法-目录 1、线性表的链式存储结构 1.1、线性表链式存储结构定义 线性表的链式存储结构的特点是用一组...

  • 线性表的链式存储结构Java实现

    有了前面文章的铺垫:数据结构的基本理解线性表及其顺序存储结构的理解线性表的顺序存储结构java实现线性表链式存储就...

网友评论

    本文标题:线性表的存储结构

    本文链接:https://www.haomeiwen.com/subject/ifgzsktx.html