数据结构
文章平均质量分 81
椰子哥·天行者
这个作者很懒,什么都没留下…
展开
-
哈夫曼编码
转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3160434.html前面一节我们知道了,怎样去创建一个哈夫曼树,这一节我们来看看哈夫曼编码。思想:得到哈夫曼树后,自顶向下按路径编号,指向左节点的边编号0,指向右节点的边编号1,从根到叶节点的所有边上的0和1连接起来,就是叶子节点中字符的哈夫曼编码。转载 2015-05-19 19:42:15 · 459 阅读 · 1 评论 -
循环链表&线性表(5.15)
练习:创建一个n个节点环形链表(不包含头节点),然后输出这个环形链表 例如: LinkNode *create_loop_linklist(int n){当n为10的时候,这个环形链表中有:1,2,3,4,5,6,7,8,9,10 返回第一个数据节点的地址} int printf_loop_linklist(LinkNode *p)原创 2015-05-15 23:30:52 · 455 阅读 · 0 评论 -
图的存储(5.20)
一 图的存储----邻接矩阵1.数据结构typedef struct { int v[N]; int matrix[N][N];}graph_t;2.操作graph_t *malloc_graph_memory(){ int i = 0; graph_t *g; g = (graph_t *)malloc(sizeof(graph_t)); fo原创 2015-05-20 19:59:13 · 395 阅读 · 0 评论 -
表达式计算
栈的应用举例 :栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。规则: 自左至右扫描表达式,凡是遇到操作数一律进操作数栈。当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶运算符的优先级。左括号一律进运算符栈,右括号一律不进运算符栈,原创 2015-05-18 11:31:01 · 395 阅读 · 0 评论 -
栈和队列(5.18)
队列 本质:是一种线性表,但是它规定先进先出 1.循环队列 数据结构 typedef struct {DATATYPE buf[MAX];int front;//出队的时候操作int rear;//进队的时候操作}LoopQueue; 原则:先进先出(尾入头出) 规定[1]初始化的时候front和rear为0[2]规定队空原创 2015-05-18 19:53:09 · 301 阅读 · 0 评论 -
深度优先搜索(DFS)&广度优先搜索(BFS)
分类: C/C++转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3171290.html 图的遍历是树的遍历的推广,是按照某种规则(或次序)访问图中各顶点依次且仅一次的操作,亦是将网络结构按某种规则线性化的过程。 由于图存在回路,为区别一顶点是否被访问过和避免顶点被多次访问,在遍历过程中,应记下每个访转载 2015-05-20 15:31:40 · 632 阅读 · 0 评论 -
数据结构详解
第一课:数据结构的基本概念和术语第二课:抽象数据类型的表示与实现第三课:算法及算法设计要求第四课:算法效率的度量和存储空间需求第五课:线性表的类型定义第六课:线性表的顺序表示和实现第七课:实验一线性表的顺序存储实验第八课:线性表的链式表示与实现第九课:循环链表与双向链表第十课:栈的表示与实现第十一课:栈的应用第十二课:实验二循环链表实验第十三课:队列转载 2015-05-14 23:19:14 · 8149 阅读 · 0 评论 -
哈夫曼树
转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3158234.html哈夫曼树的基本概念:哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。(1)路劲(Path):从树中的一个结点到另一个结点之间的分支构成两个转载 2015-05-19 19:27:09 · 493 阅读 · 0 评论 -
线性存储&链式存储(5.14)
顺序存储:一 数据结构 (1)数据存储 (顺序存储,链式存储,索引存储,哈希存储)(2)数据间关系(逻辑关系:线性,非线性)(3)数据操作 (增 删 改 查 排序) 二 线性关系-----顺序表 = 存放数据的空间[数组] + 当前数据的个数 1.数据结构 typedef int DATATYPE; typedef stru原创 2015-05-14 19:20:55 · 724 阅读 · 0 评论 -
树与二叉树(5.19)
一 树的基本概念 1.树 : 它是n个节点的集合,满足的条件 [1]只有一个根节点[2]其它节点可以看成是多颗子树 2.树的高度 : 节点层数的最大值3.树叶节点 : 没有子节点 4.二叉树 : 每个节点最多两个子节点 5.完全二叉树(1)定义 : 只有最下面两层有度数小于2的节点,且最下面一层的叶节点在最左边(2)特点 : 完全二叉树的原创 2015-05-19 19:49:07 · 314 阅读 · 0 评论 -
约瑟夫问题
转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3156964.html设编号分别为:1,2,...,n的n个人围坐一圈。约定序号为k(1 设n=8,k=3,m=4时,如图所示:出列为:6,2,7,4,3,5,1,8算法思路:用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的转载 2015-05-18 11:18:38 · 326 阅读 · 0 评论 -
球钟问题
转载请注明来源:http://blog.chinaunix.net/uid-26833883-id-3156950.html球钟问题描述:球钟是一个利用球的移动来记录时间的简单装置。它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器。若分钟指示器中有2个球,5分钟指示器中有6个球,小时指示器中有5个球,则时间为5:32。 工作原理:每过一分转载 2015-05-18 11:07:56 · 906 阅读 · 0 评论 -
排序算法总结
前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这翻译 2017-04-11 10:24:46 · 385 阅读 · 0 评论