Viletyy Blog

「离开世界之前 一切都是过程」

大话数据结构:二叉树

二叉树 比如开和关、0和1、真和假、上和下、对与错,正面与反面等,都适合用树状结构来建模,而这种树是一种很特殊的树状结构,叫做二叉树。 二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 二叉树特点 每个结点最多有两棵子树,所以二叉树中不存在度大...

大话数据结构:树

树 树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中: 有且仅有一个特定的称为根(Root)的结点; 当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 对于树的定义还需要强调两点: n>0时根结点是唯一的,不可能存...

大话数据结构:串

串 串(string)是由零个或多个字符组成的有限序列,又名叫字符串。 一般记为s="a1a2...an"(n>=0),其中s是串的名称,用双引号(有些地方也用作单引号)括起来的字符序列是串的值,注意引号不属于串的内容。ai(1<=1<=n)可以是字母、数字或其它字符,i就是该字符在串中的位置。串中字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。零...

大话数据结构:队列

队列 队列(Queue)是只允许在一端进入插入操作,而在另一端进行删除操作的线性表 队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为对头。 队列的抽象数据类型 1 2 3 4 5 6 7 8 9 10 11 12 13 ADT 队列(Queue) Data 同线性表。元素具有相同的类型,相邻元素具有前驱和...

大话数据结构:栈

栈 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一段称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。 栈的插入操作,也叫进栈,也称压栈、入栈。 栈的删除操作,也叫出栈,也有的叫做弹栈。 栈的抽象数据类型 1 2 3 4 5 6 7 8 9...

大话数据结构:线性表的双向链表存储结构

双向链表 双向链表(double linked list)是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。 线性表的双向链表存储结构 1 2 3 4 5 6 typedef struct DulNode { ElemType data; struct DulNode *prior; struct DulNode *next; } DulNode, *DuL...

大话数据结构: 线性表的静态链表存储结构

静态链表 用数组代替指针,首先让数组的元素都是有两个数据域组成,data和cur。也就是说,数组的每一个下表都对应一个data和一个cur。数据域data,用来存放数据元素,也就是通常需要处理的数据;而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。 这种用数组描述的链表叫做静态链表 线性表的静态链表存储结构 1 2 3 4 5 6 7 /*线性表的静态...

大话数据结构:线性表的循环链式存储结构

循环链表 将单链表中终端结点的指针端由空指针改为指向头结点,就使得整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list) 其实循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p->next是否空,现在则是p->next不等于头结点,则循环未结束。 在单链表中,我们有了头结点时,我们可以用O(1)的时间访问...

大话数据结构: 线性表的单链表存储结构

线性表的单链表存储结构 1 2 3 4 5 6 7 /*线性表的单链表存储结构*/ typedef struct Node { ElemType data; struct Node *next; typedef struct Node *LinkList; 结点由存放数据元素的数据域存放后继结点地址的指针域组成。 单链表的读取 获得链表第i个数据的算法思路 ...

大话数据结构: 线性表的顺序存储结构

线性表的顺序存储结构 线性表的顺序存储的结构代码。 1 2 3 4 5 6 7 #define MAXSIZE 20 /*存储空间初始分配量*/ typedef int ElemType; /*ElemType类型根据实际视情况而定,这里假设为int*/ typedef struct { ElemType data[MAXSIE]; /*数组存储数据元素,最大值为MAXS...