摘要: 二叉搜索树(Binary Search Tree),又名二叉查找树、二叉排序树,是一种简单的二叉树。它的特点是每一个结点的左(右)子树各结点的元素一定小于(大于)该结点的元素。将该树用于查找时,由于二叉树的性质,查找操作的时间复杂度可以由线性降低到O(logN)。 当然,这一复杂度只是描述了平均的情 阅读全文
posted @ 2019-08-08 09:55 DrChuan 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 第三个结构——队列(Queue) 队列与上次的栈相反,是一种先进先出(FIFO)的线性表。写入时只暴露尾部,读取时只暴露头部。 本次只实现了数组形式的队列。原因是链表形式的队列极为简单,只需要实现简单的删除首结点和尾部插入两种操作,在此便不再具体实现。 而对于数组形式的队列,内存单元固定,又不具备像 阅读全文
posted @ 2019-08-01 00:30 DrChuan 阅读(355) 评论(2) 推荐(1) 编辑
摘要: 这次的数据结构是一种特殊的线性表:栈(Stack) 栈的特点是后入先出(LIFO),可见的只有栈顶的一个元素。 栈在程序中的地位非常重要,其中最重要的应用就是函数的调用。每次函数调用时都会创建该函数的一个“活动记录”( Activation Record ,或称作“帧”( Frame ))压入运行时 阅读全文
posted @ 2019-07-31 22:53 DrChuan 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 开始学习数据结构,使用的教材是机械工业出版社的《数据结构与算法分析——C语言描述》,计划将书中的ADT用C语言实现一遍,记录于此。下面是第一个最简单的结构——链表。 链表(Linked-List),即最基本的数据结构——线性表的链式存储结构。比起顺序存储,其好处在于空间使用的灵活性,以及插入、删除操 阅读全文
posted @ 2019-07-29 19:48 DrChuan 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 导语 近日,笔者在课业之余阅读了《C和指针(Pointers on C)》 (by Kenneth A.Reek)一书,从中记录了关于C语言的诸多知识点,包括在C语言基础特性的学习过程中没有涉及到的基本方面,以及与指针相关的进阶话题。 由于初次记录过程中有诸多不详细之处,故将其中内容重新整理如下,方 阅读全文
posted @ 2019-04-19 21:32 DrChuan 阅读(276) 评论(2) 推荐(0) 编辑