随笔分类 -  数据结构

摘要:图 图是一种用顶点和边来表示关系的数据模型,一般用来表示多对多关系。图分为无向图和有向图两种。例如: 无向图中“A — B”表示A可以直接到达B,B也可以直接到达A;有向图中“A —> B”表示A可以直接到达B,而B不能直接到达A。即无向图的边是双向可达的,有向图的边是单向可达的。 图的表示 图可以 阅读全文

posted @ 2019-10-09 11:26 寇德·坡特 阅读(359) 评论(0) 推荐(0)

摘要:栈 栈是一种只允许在序列末端操作的数据结构。栈的末端也称之为栈顶。 栈的插入操作是将新元素压入栈顶,称为入栈。栈的删除操作是删除栈顶元素,称为出栈。由此可以看出,栈的特点是:后入栈的元素先出栈,先入栈的元素后出栈。 栈常用的操作有:入栈、出栈、取栈顶元素等。其接口定义如下: 1 public int 阅读全文

posted @ 2019-09-17 23:35 寇德·坡特 阅读(813) 评论(0) 推荐(0)

链表
摘要:链表 链表是采用链式结构存储的线性表。链表中的元素在存储空间中的位置不一定是连续的,所以链表使用结点来存储元素,每个节点中还存储了相邻节点位置信息。由于不是连续存储,存取元素的速度比顺序表差。但是只要存储空间足够,链表就可以动态增加长度,也就是说,相较于顺序表,链表能更快速地进行元素的插入和删除操作 阅读全文

posted @ 2019-09-13 23:48 寇德·坡特 阅读(429) 评论(0) 推荐(0)

队列
摘要:队列 队列是一种常见的线性结构,遵循先进先出的原则,即先存入队列的元素要先取出,后存入队列的元素要后取出。 队列的插入操作称为入队,入队在队尾进行;队列的删除操作称为出队,出队在队头进行。因此需要front和rear两个变量分别记录队头和队尾的位置,front随着出队操作而改变,rear随着入队操作 阅读全文

posted @ 2019-09-11 23:10 寇德·坡特 阅读(416) 评论(0) 推荐(0)

稀疏数组
摘要:概述 稀疏数组是指那些零元个数远大于非零元个数的数组,而稀疏数组的零元分布往往没有规律可循。最经典的例子就是棋盘,在保存棋局时,棋盘上棋子的数目往往不会布满整个棋盘。以中国象棋为例,棋盘为10*9,而棋子数为32,而且在走棋过程中还会减少棋子数。所以如果用整个数组来保存棋盘就会花费太多空间。这时就要 阅读全文

posted @ 2019-09-11 13:39 寇德·坡特 阅读(209) 评论(0) 推荐(0)

摘要:树 树形结构常用来表示层次化或序列化的结构。 树是含有n个结点的有限集合。结点数n=0的树称为空树。任意一棵非空树中有且仅有一个根结点。 为方便描述结点间的层次关系,有以下定义: 子结点:位于当前结点之下,且与当前结点直接相连的结点。一个结点可以有任意个子结点。没有子结点的结点又被称为叶子结点。 父 阅读全文

posted @ 2019-08-14 15:37 寇德·坡特 阅读(257) 评论(0) 推荐(0)

摘要:概述 堆是一种完全二叉树,分为两种类型: 大顶堆:每一个非叶子结点均不小于其孩子结点。 小顶堆:每一个非叶子结点均不大于其孩子结点。 堆中根结点的位置称为堆顶,最后结点的位置称为堆尾,结点个数称为堆长度。由于结点从1开始编号,所以堆尾的结点编号等于其堆长度。 堆有以下特性: a.对于大顶堆,堆顶元素 阅读全文

posted @ 2019-08-10 23:56 寇德·坡特 阅读(262) 评论(0) 推荐(0)

线性结构
摘要:概述 线性结构是包含n个相同类型元素的优先序列。在线性结构中,数据元素的前后关系是“一对一”的,即线性关系。 对于线性结构L=(a1, a2, ..., an): a.当1≤i<n且i<j≤n时,aj是ai的后继。ai+1是ai的直接后继。 b.当1<i≤n且1≤j<i时,aj是ai的前驱。ai-1 阅读全文

posted @ 2019-08-02 21:51 寇德·坡特 阅读(1187) 评论(0) 推荐(0)

导航