2022年2月6日

数据结构---哈夫曼树

摘要: 数据结构---哈夫曼树 ## 哈夫曼树及其应用 名称 概念 哈夫曼树 又称最优树,是一类带权路径长度最短的树 路径 从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径 路径长度 路径上的分支数目称作路径长度 树的路径长度 从树根到每一结点的路径长度之和 权 赋予某个实体的一个量,是对实体的某个或某些属性的数值化描 阅读全文

posted @ 2022-02-06 20:38 眉目作山河 阅读(419) 评论(0) 推荐(0) 编辑

数据结构---森林与二叉树的转换

摘要: 数据结构---森林与二叉树的转换 森林和二叉树的转换 树< >二叉树 由于树和二叉树都可以用二叉链表作存储结构,以二叉链表为媒介可以建立树与二叉树的关系 树用二叉树表示法(孩子兄弟法)来表示存储结构可以解释为二叉树的样子 二叉树的存储就是左指针指向左孩子,右指针指向右孩子它的解释也是为二叉树的样子 实际上两者的存储结构不一样,但都可 阅读全文

posted @ 2022-02-06 20:35 眉目作山河 阅读(484) 评论(0) 推荐(0) 编辑

数据结构---线索二叉树

摘要: 数据结构---线索二叉树 线索二叉树 基于直接获得到结点在任意序列的前驱和后继的需求,引入线索二叉树 为了不降低存储密度,将二叉链表的空链域来存放结点的前驱和后继信息 增加两个标志域 当Tag为零则child指向孩子,为1则指向前驱(L)或后继(R) 线索链表的存储表示 typedef struct BiThrNode { 阅读全文

posted @ 2022-02-06 20:31 眉目作山河 阅读(158) 评论(0) 推荐(0) 编辑

数据结构---树的存储结构

摘要: 数据结构---树的存储结构 树的存储结构 双亲表示法 一组连续的存储单元(数组)存储树的结点,每个结点除了数据域data外,还附设一个parent域用以指示其双亲结点的位置 特点:找双亲容易,找孩子难 双亲直接访问parent域就可获得,但是要找孩子就得遍历整个结构 类型描述 typddef struct PTNode { T 阅读全文

posted @ 2022-02-06 20:29 眉目作山河 阅读(220) 评论(0) 推荐(0) 编辑

数据结构---二叉树

摘要: 数据结构---二叉树 二叉树的性质和存储结构 二叉树的性质 1.在二叉树的第i层上至多有2^i-1个结点(i>=1),最少有1个结点 2.深度为K的二叉树至多有 (2^k)-1 个结点 (k>=1),最少有k个结点 将所有层的最大结点数相加 3.对任何一棵二叉树T, 如果其终端结点数为n0,度为2的结点数为n2,则n0= 阅读全文

posted @ 2022-02-06 20:27 眉目作山河 阅读(469) 评论(0) 推荐(0) 编辑

数据结构---树与二叉树

摘要: 数据结构---树与二叉树 树和二叉树 树(Tree)是n(n>=0)个结点的有限集,它或为空树(n= 0); 或为非空树,只有根结点也是树 对于非空树T,有且仅有一个根结点,除根结点以外其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,称为根的子树 树的结构定义是一个递归定义,在数的定义中又用到数的定义 树的 阅读全文

posted @ 2022-02-06 20:25 眉目作山河 阅读(116) 评论(0) 推荐(0) 编辑

数据结构---病毒检测和计数字符频度

摘要: 数据结构---病毒检测和计数字符频度 案例分析与实现 病毒感染检测 分析:检测病毒DNA序列是否在患者DNA序列里出现过,实际上就是字符串的模式匹配问题,这里假设病毒 DNA 序列的长度是 m, 因为病毒 DNA 序列是环状的 ,所以将病毒的DNA连续存储2次(为了线性取得长度为m的模式串),在调用匹配算法时需要循环操作m次(这里可以看 阅读全文

posted @ 2022-02-06 20:19 眉目作山河 阅读(410) 评论(0) 推荐(0) 编辑

数据结构---数组

摘要: 数据结构---数组 数组 数组可以看成是线性表的推广,其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,数组一旦被定义, 它的维数和维界就不再改变。 抽象数据类型数组定义 数组的顺序存储 用一组连续的存储单元存储数组的数据元素 以行序为主序的二维数组 假设每个数据元素占 L 个存储单元, 则二维数组 阅读全文

posted @ 2022-02-06 20:15 眉目作山河 阅读(229) 评论(0) 推荐(0) 编辑

数据结构---串的模式匹配算法

摘要: 数据结构---串的模式匹配算法 串的模式匹配算法 BF算法 算法思想: 指定主串中查找的起始位置pos,主串字符和模式串字符一一比较,遇到不相等则回溯到主串的下一个位置,模式串的第一个位置进行比较,直到分别对应相等则匹配成功 算法步骤: 指针i和j指示主串 S 和模式 串T中当前正待比较的字符位置, i初值为pos,j初值为1。 阅读全文

posted @ 2022-02-06 20:10 眉目作山河 阅读(385) 评论(0) 推荐(0) 编辑

数据结构---串的基本操作

摘要: 数据结构---串的基本操作 串的基本概念 计算机上的非数值处理的对象大部分是字符串数据, 字符串(由零个或多个字符组成的有限序列)一般简称为串,记为s= "a1 a2 … an" (n>=0) 串是一种特殊的线性表, 其特殊性体现在数据元素是一个字符, 也就是说, 串是一种内容受限的线性表。 串的值:双引号括起来的字符序列 串 阅读全文

posted @ 2022-02-06 20:08 眉目作山河 阅读(2036) 评论(0) 推荐(0) 编辑

数据结构---第二章案例分析

摘要: 数据结构---第二章案例分析 案例分析与实现 数制的转换 分析:将一个十进制整数 N 转换为八进制数时,在计算过程中,把 N 与 8 求余得到的八进制数的各位依次进栈,计算完毕后将栈中的八进制数依次出栈输出,输出结果就是待求得的八进制数。 算法步骤 初始化一个空栈S 当十进制数N非零时, 循环执行以下操作: 把 N 与 8 求余 阅读全文

posted @ 2022-02-06 20:05 眉目作山河 阅读(142) 评论(0) 推荐(0) 编辑

数据结构---链队的实现

摘要: 数据结构---链队的实现 链队 队列的链式表示和实现 链队是指采用链式存储结构实现的队列。结点删除移动头指针,结点添加移动尾指针,具有先进先出的特点 头指针 头结点 尾指针 尾结点 链队列的结构定义 typedef struct QNode { QElemType data; //队列元素 struct QNode *nex 阅读全文

posted @ 2022-02-06 20:03 眉目作山河 阅读(177) 评论(0) 推荐(0) 编辑

数据结构---队列的基本操作

摘要: 数据结构---队列的基本操作 队列的表示和操作 只允许在一端插入数据,在另一端删除数据的特殊线性表,具有先进先出的特性(FIFO) 队尾插入 入队 队首删除 出队 队列的抽象数据类型定义 ATD Queue{ 数据对象:D={ai属于ElemSet ,i=l,2,…, n ,n>=O} 数据关系:R={ <ai-1,ai> |a 阅读全文

posted @ 2022-02-06 20:01 眉目作山河 阅读(359) 评论(0) 推荐(0) 编辑

数据结构---栈与递归

摘要: 数据结构---栈与递归 栈与递归 递归:若在一个函数、 过程或者数据结构定义的内部又直接(或间接)出现定义本身的应用,则称它们是递归的 1.定义是递归的 如:阶乘函数,Fibonacci数列 分治法:复杂的问题能够分解成相对简单且解法相同或类似的子问题来求解 void p(参数表) { if(递归结束条件成立)可直接求解; 阅读全文

posted @ 2022-02-06 19:58 眉目作山河 阅读(236) 评论(0) 推荐(0) 编辑

数据结构---链栈的基本操作

摘要: 数据结构---链栈的基本操作 链栈的实现和表示 链栈是指采用链式存储结构实现的栈。通常链栈用单链表来表示。 这里没有头结点,链表的头部就是栈顶。 链栈的存储结构: typedef struct StackNode { ElemType data; struct StackNode *next; } StackNode,*Link 阅读全文

posted @ 2022-02-06 19:55 眉目作山河 阅读(1305) 评论(0) 推荐(0) 编辑

数据结构---栈和队列

摘要: 数据结构---栈和队列 栈的定义和特点 栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。 表尾->栈顶;表头->栈底 相当于出口入口是同一个,所以先进后出(LIFO),这种模型适用于按照保存数据时相反的顺序来使用 队列的定义和特点 队列(queue)是一种**先进先出(First In First Out, 阅读全文

posted @ 2022-02-06 19:53 眉目作山河 阅读(190) 评论(0) 推荐(0) 编辑

数据结构---第一章案例分析

摘要: 数据结构---第一章案例分析 案例分析与实现 一元多项式的运算 数组来表示一元多项式的线性表 数组中存多项式每项的系数,数组分量的下标对应每项的指数,非零分量的个数即为多项式的系数。 顺序存储结构来实现,当多项式每个项的指数差别大,由于每一项不管系数是否为零都是要占存储空间(为了保证多项式的指数和数组分量的下标对应)所以会浪费很 阅读全文

posted @ 2022-02-06 19:50 眉目作山河 阅读(94) 评论(0) 推荐(0) 编辑

数据结构---线性表的应用

摘要: 数据结构---线性表的应用 线性表的应用 线性表的合并 算法思想:扩大线性表LA,将存在表LB而不存在于表LA中的数据放在表LA中 即从表LB中取得每个元素,并且都和表LA中的元素进行比较,不存在就插入表LA中 算法步骤: 分别获取表LA和表LB的表长m,n 从表LB中获取第i个元素,将其赋值给e 在表LA中查找元素e,不存在 阅读全文

posted @ 2022-02-06 19:42 眉目作山河 阅读(256) 评论(0) 推荐(0) 编辑

数据结构---循环链表

摘要: 数据结构---循环链表 循环链表 最后一个结点的指针域指向头结点 其中空表的指针域不再是空而是指向头结点 判别当前指针是否指向表尾结点判别条件为p!=L,p->next=L。 双向链表 结点中有两个指针域,一个指向直接后继(next),一个指向直接前趋(prior) 其中空表的两个指针都指向本身 双向链表中的循环链表满足d 阅读全文

posted @ 2022-02-06 17:09 眉目作山河 阅读(206) 评论(0) 推荐(0) 编辑

数据结构---单链表

摘要: 数据结构---单链表 判断单链表是否为空 表中无元素,称为空链表(头指针和头结点依然存在) 判断头结点的指针域是否为空 void ShowList(LinkList L) { LinkList p; p = L->next; cout << "单链表为:"; while (p) { cout << p->data << 阅读全文

posted @ 2022-02-06 17:01 眉目作山河 阅读(188) 评论(0) 推荐(0) 编辑

导航