数据结构与算法(3)

一、逻辑结构划分为线性结构非线性结构

线性结构:有且只有一个开始节点和一个终端节点,并且所有终点都做多只有一个直接前驱和一个后继。

案例:冰糖葫芦、排队上地铁

非线性结构:主要树(主要指二叉树)、图(多对多)

案例:姓氏族谱、公司员工结构、地铁路线、高速公路网 

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

猜你喜欢

转载自blog.csdn.net/weixin_40928946/article/details/85678483
今日推荐