[考研数据结构] 1.线性表


线性表


一、顺序表

1. 结构体定义

#define MaxSize 100
typedef struct SqList{
	int data[MaxSize];
	int length;
}SqList;

2. 数组直接定义

int data[MaxSize];
int length;

3. 顺序存储结构

  • 支持随机存取、顺序存取
    [考研数据结构] 1.线性表

二、单链表

1. 结构体定义

typedef struct Node {
	int data;
	struct Node *next;
}Node, *LinkList;

2. 链式存储结构

  • 只能顺序存取,不能随机存取
  • 判空条件:L -> next == NULL (只有头节点)
    [考研数据结构] 1.线性表

3. 头插法建立单链表

  • 链表元素顺序与读入数据顺序相反
  • 可实现单链表的逆置

4. 尾插法建立单链表

  • 链表元素顺序与读入数据顺序相同

三、 双链表

1. 结构体定义

typedef struct Node {
	int data;
	struct Node *prior, *next;
}Node, *LinkList;

2. 链式存储结构

  • 判空条件:L -> next == NULL (只有头节点)
    [考研数据结构] 1.线性表

四、循环链表

1.循环单链表

  • 判空条件:L -> next == L (只有头节点)
    [考研数据结构] 1.线性表

2.循环双链表

  • 判空条件:L -> next == L && L -> prior == L (只有头节点)
    [考研数据结构] 1.线性表

五、静态链表

  • 实际上是顺序存储的数组,在逻辑上表示单链表
    [考研数据结构] 1.线性表
上一篇:哈希表


下一篇:从其他语言快速入门c++刷题