数据结构

栈的基本操作及C语言代码实现

栈的基本操作及C语言代码实现1.栈的基本操作—出栈如图:出栈(pop)操作,是在栈不为空的情况下(注意一定要进行判空操作),将栈顶的元素删除,同时top指针,next向下进行移动即可的操作。其代码可以表示为://出栈……

参考及相关链接

参考及相关链接参考目录:《大话数据结构》      程杰著《数据结构与算法》小黑书,C语言版本《算法与数据……

哈夫曼树的介绍及C语言代码实现

哈夫曼树的介绍及C语言代码实现1.简介哈夫曼树(HuffmanTree),又名:最优二叉树,赫夫曼树其标准含义是:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼……

C++STL之Queue容器

C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。……

单链表的基本操作及C语言代码实现

单链表的基本操作及C语言代码实现(续接前文)1.  遍历单链表(打印,修改)便利的概念想必大家都不会陌生,即就是从链表的头开始,逐步向后进行每一个元素的访问,这就是遍历,对于遍历操作,我们可以衍生……

手指树的基本结构

手指树的基本结构一、简介手指树(FingerTree)是一种纯函数式数据结构,由RalfHinze和RossPaterson提出。二、为什么需要手指树?在函数式编程中,列表是十分常见的数据类型。对于基于序列的操作,包……

折半查找(二分查找)介绍与实现

折半查找(二分查找)介绍与实现1.算法简介二分查找也称折半查找(BinarySearch),多数的人喜欢叫他二分查找。它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列,注意必须……

字符串的KMP算法详解及C/C++代码实现

字符串的KMP算法详解及C/C++代码实现1.原由紧接上文,我们知道了暴力匹配的算法在时间运行上的缺陷,假设字符串T的长度为n,字符串P的长度为m,则整个算法的时间复杂度为O(n*m),而对于一个复杂的现实情况而言n>&……

树的遍历之中序遍历二叉树

树的遍历之中序遍历二叉树1.简介依旧是下面的这三句话:先序遍历:根左右中序遍历:左根右后序遍历:左右根      &……