基本数据结构整理

旧城冷巷雨未停 提交于 2019-12-01 13:14:21

数据结构

基本数据结构

基本定义解释

数据结构

数据结构分为线性结构和非线性结构,其中线性表是典型的线性结构。

存储结构

对计算机数据存储的结构描述,一般分为线性结构和非线性结构。

存取结构

在一个数据结构上对查找操作的时间性能的一种描述,一般有随机存储结构和顺序存储结构。

随机存储结构

一个数据结构上进行查找的性能为O(1),即查找任意元素的时间复杂度为1。(如顺序表等)

顺序存储结构

一个数据结构上进行查找的时间性能为O(n)。(如单链表等)

链表

链表是一个动态结构,不需要提前分配内存。

线性表

线性表是一个静态的结构,需要提前分配对应的存储空间,分配之后就不能修改,从逻辑上定义元素是一对一关系。

顺序表

顺序表是使用数组的方式对线性表的实现,在内存中是连续的空间,一旦分配,无法更改。

链表

链表是使用指针的方式实现线性表,在内存中可以连续也可以不连续。

链表节点构成

指针域(用于存放指针L->next在左边时为指针域)、数据域(用于存放数据的)。

链表指针

对应数据的指针地址( L->next在右边时为指针)。

链表指针域

存放对应指针的区域。

线性表和链表的选择

首相考虑数据的存储密度线性线性表为1,链表小于1,顺序表的访问速度快,链表的存储删除速度快。

线性表和链表的重点知识

初始化、查找、插入、删除、遍历、逆置、合并、分解等操作。

双链表删除p指针操作顺序

p->next->prev=p->prev;p->prev->next=p->next;free(p);

在非空 双链表q后插入节点p

rlink(p)<-rlink(q);rlink(q)<-p;llink(p)<-q;llink(rlink(p))<-p;其中rlink(p):p的后继;llink(p):p的前驱。

线性表的一种,但是其运算受限。只能在栈顶插入或者删除元素。并且有着先进后出的特点。

队列

线性表的一种,但其运算受限,只能在队头删除元素,队尾插入元素。并且有着先进先出的特点。

                                            树

数据结构的一种,非线性结构。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。

二叉树

树的一种特殊结构,每个节点最多只包含两个儿子节点。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!