一、逻辑结构划分为线性结构与非线性结构?
线性结构:有且只有一个开始节点和一个终端节点,并且所有终点都做多只有一个直接前驱和一个后继。
案例:冰糖葫芦、排队上地铁
非线性结构:主要树(主要指二叉树)、图(多对多)
案例:姓氏族谱、公司员工结构、地铁路线、高速公路网
1. 特点:
头结点无前驱有后继;
尾节点无后继有前驱;
中间结点有前驱有后继;
物理上相邻逻辑上也相邻。
2. 类型:
(1)线性表(基本)
(2)栈(常见)
(3)队列(常见)
3. 方法:
理论 + 实践
以线性表为例重点讲解:
1. 线性结构:一对一,顺序连接
2. 逻辑关系:一一相邻
二、 数据存储结构
常见数据存储方式:顺序存储、链式存储、索引存储和散列存储。
1. 顺序存储及操作
简称顺序表(连续的)
操作步骤:定义顺序表,建表,查询,增,删,修改,输出
2. 链式存储及操作
数据 + 地址(指针)
单向链表(主)
、
struct node//数据结构体
{
int data;//数据域
struct node *next // 指针指向
};
链表操作:
1)创建链表
struct node *p1, *p2, *p3;
{
p1 = new node;
p1 -> data = a1;
p2 = new node;
p2 -> data = a2;
p3 = new node;
p3 -> data = a3;
};
2)链表查询
3) 循环链表
3. 索引存储和散列存储(暂不研究)
【1】赵海英 (新东方老师). 数据结构. https://www.bilibili.com/video/av23632686/?p=22&t=160