随笔分类 -  数据结构

摘要:一、图的概念 通常图表示为偶对,是顶点和边的集合 G = (V,E)V:顶点(数据元素)的又穷非空集合G:边的又穷集合 1.图的分类 1.通常根据边有无方向分为:又向图和无向图。 2.根据任意两个顶点之间是否有边相连称为:完全图其中:无向完全图中 n个顶点有 n(n-1)/2 条边 有向完全图中 n 阅读全文
posted @ 2022-04-14 10:36 铜须的编程生活 阅读(221) 评论(0) 推荐(0) 编辑
摘要:一、哈夫曼树的基本概念 也叫最优二叉树 1.引子: 将很多学生的百分制成绩转化为五分制成绩<60: D 60-69: D 70-79:C 80-89:B 90-100:A 两种判断的方式所需要的比较总的次数明显不同,在数据量很大的情况下所需要的时间也会差距很大 2.基本术语 路径:从树中的一个结点到 阅读全文
posted @ 2022-04-10 16:34 铜须的编程生活 阅读(466) 评论(0) 推荐(0) 编辑
摘要:一、森林和树 树:是n(n>=0)个结点的有限集。若 n = 0,称为空树 森林:是m(m>=0)棵互不相交的树的集合 1.树的存储结构 实现: 1.双亲表示法 定义结构数组,存放树的结点,每个结点包含两个域:数据域:存放结点本身信息 双亲域:指示本结点的双亲结点在数组中的位置 找双亲任意,找孩子难 阅读全文
posted @ 2022-04-06 18:07 铜须的编程生活 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一、满二叉树 1.概念:一颗深度为K且有2k-1个结点的二叉树称为满二叉树(每一个结点都有左右子树) 特点:1.每一层上的结点数都是最大结点数(即每层都是满的) 2.叶子结点全部在最底层 二、完全二叉树 1.概念 深度为K的具有n个结点的二叉树,当且仅当其每一个结点都与深度K的满二叉树中编号为1~n 阅读全文
posted @ 2022-04-02 14:23 铜须的编程生活 阅读(77) 评论(0) 推荐(0) 编辑
摘要:一、树 1.概念 前驱唯一,后驱不唯一(一对多,是非线性结构,结点之间有分支,具有层次关系) 数是n(n>=0)个结点的有限集 若n=0为空树 n>0时,有且仅有一个特定的称为根的结点其余结点可以分为m(m>=0)个互不相交的有限集T1,T2,T3...Tm,其中每一个集合本身又是一棵树,并称为根的 阅读全文
posted @ 2022-04-01 17:54 铜须的编程生活 阅读(79) 评论(0) 推荐(0) 编辑
摘要:一、广义表 广义表(有称Lists):是n>=个元素 a0,a1,an-1的有序列,其中每一个ai或者是原子,或者是一个广义表。广义表中的元素没有定义是否为同种元素。 广义表通常记作:LS = (a1,a2,... ,an) 其中: LS为表名, n为表长度, 每一个ai为表的元素 习惯上,一般用大 阅读全文
posted @ 2022-03-30 17:53 铜须的编程生活 阅读(204) 评论(0) 推荐(0) 编辑
摘要:一、数组 数组:按一定格式排列起来的具有相同类型的数据元素集合。 一维数组:若线性表中的数据元素为非结构的简单元素,则称为一维数组 一维数组的逻辑结构:线性结构。定长的线性表 数组的特点:结构固定——定义后维数和维界不再改变 一般不做删除和添加元素的操作。做修改,取元素 二维数组:可以看作线性表也可 阅读全文
posted @ 2022-03-30 17:23 铜须的编程生活 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一、串的概念 串:零个或多个任意字符串组成的有限序列 S="a1 a2 ... an" S :串名 a1-an:串值 n是串长, n=0是空串 字串:一个串中任意个连续字符组成的子序列(含空串)称为该串的子串 “abcde”的子串有: “”、“a”、“ab”、“abc”、...... 、“abcde 阅读全文
posted @ 2022-03-28 15:11 铜须的编程生活 阅读(134) 评论(0) 推荐(0) 编辑
摘要:(一)队列的链式表示 若用户无法估计所用队列的长度,则宜采用链队列,仍然两个指针:一个front 头指针,一个rear尾指针 // 链队列的数据定义 #define MAXQIZE 100 //最大长度 typedef struct Qnode { QElemType data; stuct Qno 阅读全文
posted @ 2022-03-28 14:26 铜须的编程生活 阅读(93) 评论(0) 推荐(0) 编辑
摘要:(一)队列 队列是仅在表尾进行插入操作,表头进行删除操作的线性表,是一种先进先出的线性表入队操作尾指针,出队移动头指针。队列的存储结构为链队或者顺序队(常用循环顺序队) 1. 抽象数据结构 ADT Queue{ D = {ai|ai ∈E了吗Set,i=1,2...,n>=0} // 数据对象 R 阅读全文
posted @ 2022-03-28 10:01 铜须的编程生活 阅读(258) 评论(0) 推荐(0) 编辑
摘要:(一)链栈 链栈是运算受限的单链表,只能在链表头部进行操作 // 链栈的结点 typeof struck StackNode{ SElemType data // 链栈的数据域 struck StackNode *next // 链栈的指针域 }StackNode, *LinkStack 链栈的头指 阅读全文
posted @ 2022-03-25 14:45 铜须的编程生活 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、栈的操作 栈是一种在表尾进行插入、删除操作的线性表,是先进后厨 (一)数据结构定义 ADT Stack { // 数据对象 D = {ai| ai∈ ElemSet, i = 1,2,3...n, n>=0} // 数据关系 R1 = {< ai-1, ai>| ai - 1, ai ∈ D, 阅读全文
posted @ 2022-03-24 23:41 铜须的编程生活 阅读(215) 评论(0) 推荐(0) 编辑
摘要:一、双向链表 (一)双链表的结构定义 typedef struct DuLnode{ //声明结点的类型和指向节点的指针类型 ElemType data //结点的数据域 struct Lnode *next,*prior //结点的指针域,分为后驱结点的地址和前驱结点的地址 }Lnode, *Du 阅读全文
posted @ 2022-03-18 17:19 铜须的编程生活 阅读(136) 评论(0) 推荐(0) 编辑
摘要:一、链表的结构表示 (一)相关术语: 1.节点:数据元素的存储映像。由数据域和指针域两部分组成。2.链表:n个节点由指针域组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构 单链表的结构: typedef struct Lnode{ //声明结点的类型和指向节点的指针类型 ElemTy 阅读全文
posted @ 2022-03-15 16:23 铜须的编程生活 阅读(317) 评论(0) 推荐(0) 编辑
摘要:一、线性表 (一)线性表的顺序储存表示 一般一个顺序表由两个部分描述: 1.一个名为elem的数组,大小为MAXSIZE 2.一个整数来存储元素个数。 静态方式: #define MAXSIZE 100 typedef struct{ ElemType elem [MAXSIZE]; int len 阅读全文
posted @ 2022-03-10 15:32 铜须的编程生活 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一、链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,对于链表来说删除或添加一个元素是非常方便的,除了数据的随机访问(可以实现但是比较麻烦,比如可以通过添加和操作索引值来实现),它几乎可以用在任何可以使用一维数组的情况中 阅读全文
posted @ 2022-02-21 22:16 铜须的编程生活 阅读(381) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示