数据结构与算法
好的算法能够让程序跑得更快
bkLion
一切都是项目,一切也将成为项目;项目造就人生,人生享受项目。
展开
-
Arithmetic第一篇:栈具有FILO(先进后出)的性质,已知栈的输入顺序为123,则输出有多少种
初学的时候也有困惑,但现在理解了,所以我想把我的理解方法分享给大家,帮助大家学习:以1开头:123,132两种帮助理解:1进1出2进2出3进3出(输出序列为123);1进1出2进3进3出2出(输出序列为132)以2开头:213,231两种帮助理解:1进2进2出1出3进3出(输出序列为213);1进2进2出3进3出1出(输出序列为231)以3开头:***注意!***只有3...原创 2019-03-20 20:02:11 · 2297 阅读 · 0 评论 -
Arithmetic第二篇:顺序表的创建及基本操作
顺序表的概念:顺序表是指按顺序存储结构存储的线性表,顺序表中的结点在内存中占用一段连续的存储单元。逻辑上相邻的数据元素,物理上也相邻。在顺序存储结构中有如下关系:Loc(ai) = Loc(a1)+(i-1)length(1<=i<=n),其中Loc(a1)的地址为add,即只要知道顺序表的首地址和每个数据元素所占地址的单元个数,就可以求出第i个数据元素的地址。顺序表的优点:...原创 2019-03-23 13:42:27 · 486 阅读 · 0 评论 -
Arithmetic第三篇:顺序表和链表的区别
顺序表和链表的区别 最近在学习该知识点的时候,有小伙伴问我顺序表和链表的区别在哪里,这里我给大家总结了一下: 顺序表的概念:按照顺序存储结构存储的线性表,表中的结点在内存中占用一段连续的存储单元(逻辑上相邻的元素物理上也相邻)。 单链表的概念:按照链式存储结构存储的线性表,表中的结点可以连续也可以不连续。优点:1.顺序表:(1)方法简单;(2)存储密度大;(3)查...原创 2019-04-07 23:57:25 · 257 阅读 · 0 评论 -
Arithmetic第四篇:顺序栈的创建及基本操作
一、什么是栈? 答:栈是限制在表的一端进行插入和删除的线性表(栈的插入和删除限定在表尾)。在线性表中进行插入、删除操作的一端成为栈顶(Top),栈顶保存的元素成为栈顶元素。相对而言,表的另一端成为栈底(Botton)。当栈中没有数据元素的时候成为空栈。举例说明:栈就像手枪里面的子弹一样,有顺序存储,只能从一端进行更换;二、栈的性质 答:由于栈的插入和删除仅在栈顶进行,后进栈的...原创 2019-05-02 23:34:29 · 687 阅读 · 0 评论 -
Arithmetic第五篇:如图所示,求前序、中序、后序的遍历结果
一、如图所示,求该二叉树前序、中序、后序的遍历结果在解决问题之前,我们先对概念做深一步了解:1.前序遍历算法:若二叉树非空,先访问根节点,再访问左子树,最后再访问右子树;简化:先根再左最右2.中序遍历算法:若二叉树非空,先访问左子树,再访问根节点,最后再访问右子树;简化:先左再根最右3.后序遍历算法:若二叉树非空,先访问左子树,再访问右子树,最后再访问根节点;简化:先左再右最根好了,我...原创 2019-05-10 18:16:23 · 850 阅读 · 1 评论 -
Arithmetic第六篇:哈夫曼编码
在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1嘛的不同排列来表示字符。下面我们将通过例子来进行说明: 假定用于通信的电文由8个字符I、J、K、L、M、N、O、P组成,各字母在电文中出现的概率为15%、20%、2%、8%、1%、12%、32%、10%,试为这8个字母构造哈夫曼编码。解:有疑问欢迎在下方留言,我们下期见!...原创 2019-05-24 22:47:21 · 955 阅读 · 0 评论