
数据结构
文章平均质量分 81
puppet_pyt
这个作者很懒,什么都没留下…
展开
-
数据结构-AVL树
为什么需要AVL树,以树的结构插入或删除大量随机数据时,有可能会导致树的一边轻一边重, 例如极端情况插入依次123456时,树就与链表无异了,Ologn的查找效率也变成了On; AVL树的特性:左右子树高度差最大为1,为了维持这个特性,在插入和删除操作时就需要旋转; 旋转规则:当插入位置为对左儿子的左子树进行插入则左单旋,左儿子的右子树时左双旋, 右儿子则镜像; #inclu原创 2017-08-20 16:41:12 · 475 阅读 · 0 评论 -
数据结构-哈希表
采用分离链接法处理冲突, 即当产生冲突时,将以链表的形式将新元素插入原来的元素之后 /*********************************************** > Filename: HashTable.cpp > Author: Pyt > Create: 2017-08-19 10:00:00 ***********原创 2017-08-20 11:51:21 · 255 阅读 · 0 评论 -
数据结构-查找二叉树
查找二叉树:始终满足任一节点的左儿子小于该节点,右儿子大于该节点, 由于其特性,查找二叉树的中序遍历始终为从小到大; 需要注意的是二叉查找树的删除,有2种策略,在删除节点不多时可以采用懒惰删除,即标记该节点删除而非真正的delete,第二种是当删除节点只有一个儿子或则为叶子节点即没有儿子时,可直接删除并将儿子移至该节点,而当删除节点有左右儿子时将其右子树最小的节点移动至该节点,当然这里并非真正原创 2017-08-20 11:42:53 · 343 阅读 · 0 评论 -
数据结构-二叉堆
二叉堆: 堆是一颗完全二叉树, 即除了底层外都被填满,底层从左到右填入的二叉树,注意不是满二叉树; 堆的特性:最大堆,堆顶元素始终为最大值,任一节点的左右儿子则均小于该节点,最小堆则相反 堆由于其特性可以以数组实现并且不大量浪费空间; 当该节点为位置为i时,其左二子位置为2i, 右儿子为2i+1; root节点应在下标为1的位置; 这里实现了最大堆 /*********原创 2017-08-20 11:02:14 · 332 阅读 · 0 评论 -
数据结构-队列
队列:先进先出,以尾插法链表实现,增加一个指针记录链表尾,入队时插入尾部,出队时删除链表头以实现先进先出的特性 /*********************************************** > Filename: Queue.cpp > Author: Pyt > Create: 2017-08-19 14:46:15 ******原创 2017-08-20 10:49:30 · 180 阅读 · 0 评论 -
数据结构-栈
栈:先进后出 关于其应用值得一提的便是后缀表达式 /*********************************************** > Filename: Stack.cpp > Author: Pyt > Create: 2017-08-19 13:41:43 ************************************原创 2017-08-20 10:42:15 · 170 阅读 · 0 评论 -
数据结构-双向链表
准备把基本数据结构以模板类的形式都敲一遍以准备秋招和PAT考试 /*********************************************** > Filename: list.cpp > Author: Pyt > Create: 2017-08-04 09:36:04 *******************************原创 2017-08-20 10:37:09 · 214 阅读 · 0 评论 -
数据结构-查找二叉树(Binary Sort Tree)
树的递归理解起来需要花点时间; 关于查找二叉树的删除: #include #include typedef struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right; }tree; typedef tree *PtrToTree; typedef PtrToTree Searc原创 2017-02-27 13:01:44 · 533 阅读 · 1 评论 -
数据结构-单向链表
最近在学数据结构,看的是《数据结构与算法分析》这本书,尝试着写了下链表和二叉树; #include #include typedef struct NODE{ struct NODE *next; int data; }Node; typedef Node *PtrToNode; typedef PtrToNode Linklist; Linklist find(int x原创 2017-02-27 12:45:26 · 205 阅读 · 0 评论