自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.05) : 散列(Hash)

散列(Hash)是一种以常数复杂度实现查找功能的数据结构。它将一个关键词Key,通过某种映射(哈希函数)转化成索引值直接定位到相应位置。实现散列有两个关键,一是哈希函数的选择,二是冲突的处理。对于哈希函数,例程中以“Key为int型,操作为取(关于表长的)模”为例。事实上,可以直接将其换成任何一个哈希函数,不会影响实现。对于冲突处理,有两大类处理方案,一是分离链接法,二是开放...

2019-08-12 20:24:00 229

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.04) : AVL树(AVL-Tree)

上次我们已经实现了普通的二叉查找树。利用二叉查找树,可以用O(logN)高度的树状结构存储和查找数据,提高了存储和查找的效率。然而,考虑一种极端情形:依次插入1,2,3,4,5,6,7,8,9九个元素,形成的二叉查找树实际上是一个线性表,每层只有一个元素,元素数与层数相同。事实上,不只这一种情形。在很多情况下,都有可能出现这种结构。这样一来,二叉查找树就失去了它存在的意义。于是,...

2019-08-11 17:27:00 174

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.03) : 二叉搜索树/二叉查找树(Binary Search Tree)...

二叉搜索树(Binary Search Tree),又名二叉查找树、二叉排序树,是一种简单的二叉树。它的特点是每一个结点的左(右)子树各结点的元素一定小于(大于)该结点的元素。将该树用于查找时,由于二叉树的性质,查找操作的时间复杂度可以由线性降低到O(logN)。当然,这一复杂度只是描述了平均的情况,事实上,具体到每一棵二叉搜索树,查找操作的复杂度与树本身的结构有关。如果二叉树的结点...

2019-08-08 09:55:00 195

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.02) : 队列(Queue)

第三个结构——队列(Queue)队列与上次的栈相反,是一种先进先出(FIFO)的线性表。写入时只暴露尾部,读取时只暴露头部。本次只实现了数组形式的队列。原因是链表形式的队列极为简单,只需要实现简单的删除首结点和尾部插入两种操作,在此便不再具体实现。而对于数组形式的队列,内存单元固定,又不具备像栈一样一端固定的特性,为使数组中的空间可被重复使用,需使得队列的头部随着Deq...

2019-08-01 00:30:00 210

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.01) : 栈(Stack)

这次的数据结构是一种特殊的线性表:栈(Stack)栈的特点是后入先出(LIFO),可见的只有栈顶的一个元素。栈在程序中的地位非常重要,其中最重要的应用就是函数的调用。每次函数调用时都会创建该函数的一个“活动记录”( Activation Record ,或称作“帧”( Frame ))压入运行时堆栈中,用于保存函数的参数,返回值,返回指令地址,返回活动记录地址,局部变量等内容。当...

2019-07-31 22:53:00 320

转载 《数据结构与算法分析——C语言描述》ADT实现(NO.00) : 链表(Linked-List)

开始学习数据结构,使用的教材是机械工业出版社的《数据结构与算法分析——C语言描述》,计划将书中的ADT用C语言实现一遍,记录于此。下面是第一个最简单的结构——链表。链表(Linked-List),即最基本的数据结构——线性表的链式存储结构。比起顺序存储,其好处在于空间使用的灵活性,以及插入、删除操作的高效性。下面给出笔者的链表结构C语言实现。其中算法和细节部分定有可优化之处,欢迎大神...

2019-07-29 19:48:00 314

转载 浓缩版 《C和指针》基础篇(Chpt.1~Chpt.9)

导语近日,笔者在课业之余阅读了《C和指针(Pointers on C)》 (by Kenneth A.Reek)一书,从中记录了关于C语言的诸多知识点,包括在C语言基础特性的学习过程中没有涉及到的基本方面,以及与指针相关的进阶话题。由于初次记录过程中有诸多不详细之处,故将其中内容重新整理如下,方便今后查看,也希望能给需要这方面知识但没有足够时间阅读原书的朋友提供一点帮助。(当然,...

2019-04-19 21:32:00 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除