数据结构与算法分析
文章平均质量分 59
hahahahhahello
这个作者很懒,什么都没留下…
展开
-
数据结构与算法分析---优先队列(二叉堆)的实现(C语言)
优先队列,是一种特殊的队列,队列取出元素是按照先进先出的顺序,而优先队列是为每一个元素都赋予一个优先级,按照优先级的大小取出,这里的优先级通常是元素的大小,所以有最大堆和最小堆,使用二叉堆这种数据结构来实现优先队列,二叉堆有两种性质,第一种是结构性质,是一棵完全二叉树,这样我们可以利用数组来存储元素,并且能快速的找到父亲节点(i/2)和左(2*i)右(2*i+1)儿子,另一种是堆序性,父节点的值小...原创 2018-08-03 21:33:28 · 751 阅读 · 0 评论 -
数据结构与算法分析—树的概念和有关二叉树基本算法的实现(C语言)
一 :树的概念和一些术语 以下来自陈越姥姥DS课的PPT,英文比较短小精悍【Definition】A tree is a collection of nodes. The collection can be empty; otherwise, a tree consists of (1) a distinguished node r, called the root;...原创 2018-07-29 19:05:21 · 512 阅读 · 0 评论 -
数据结构与算法分析—循环队列的数组实现(C语言)
数据结构与算法分析—循环队列的数组实现(C语言) 队列,也是一种表,使用队列的时候在表的末端队尾插入元素,在表的开头删除元素,因为先插入的元素先被访问,故队列又称为先进先出表,其基本操作为进队与出队,对应着插入与删除,也要先进行相应的判空判满队列可以用链表实现,也可以用数组实现,这里用数组实现,每一个队列都有Fron和Rear来指向队头和队尾,我这里实现的是循环队列,值得注意的是何时为...原创 2017-10-30 22:53:58 · 874 阅读 · 0 评论 -
数据结构与算法分析—栈的数组实现(C语言)
数据结构与算法分析—栈的数组实现(C语言) 栈(也叫堆栈,还有一个数据结构叫做堆,注意区分),也是一种线性表,但是有一个限制,就是插入和删除操作都只能在一个位置上进行,就是在表的末端,叫做栈顶,有两种主要操作,Push(进栈)与Pop(出栈),即插入与删除,用Top来访问栈顶元素,即最后一个插入的元素,要注意在调用Pop Top函数时一定要先判断是否为空栈,在调用Push函数时一定要判断是...原创 2017-10-22 11:02:43 · 742 阅读 · 0 评论 -
数据结构与算法分析——带有头结点的单链表的实现(C语言)
数据结构与算法分析——带有头结点的单链表的实现 表——一种简单的数据结构,有两种实现方式,数组和链表,各有各的优点,用数组来写优点是查找一个元素花费O(1)的时间,缺点是事先并不知道元素个数需要预估的大一些,可能浪费空间,另外删除和插入花费O(N)的时间,用链表写的缺点是查找一个元素需要从头开始查找花费O(N)的时间,优点是采用了不连续存储,插入和删除都避免了线性开销,也不用预估元素个数了...原创 2017-10-20 22:39:05 · 5699 阅读 · 5 评论 -
判断合法出栈序列
PIPI现有a-z 26个小球模拟出入栈操作,小球按照a~z的顺序压入栈,在栈顶的元素可以随时被取出,在游戏开始前给出任意26个字母的一些排列,问是否能够由出栈顺序得到这个排列。输入输入包含多组测试用例。每组测试用例包含26个字母组成的一个序列。输出若出栈顺序合法,输出"yes",否则输出"no".样例输入abcdefghijklmnopqrstuvwxyzza...原创 2019-06-25 19:44:32 · 2007 阅读 · 0 评论