数据结构
文章平均质量分 81
谷大宝
To be a better man !
展开
-
单链表C语言实现
单链表相比于顺序表来说,优点在于头部,中间插入比较高效,但操作较为复杂,空间利用率低,并且CPU顺序表比链表缓存效率高。下面来看代码实现: #include #include #include typedef int DataType; typedef struct Node { DataType data; struct Node* next; }*PNode,Node; //初始化原创 2017-04-11 10:25:14 · 293 阅读 · 0 评论 -
简单实现静态/动态顺序表
静态顺序表操作较为简单,空间利用率高但里面需要注意的是排序的实现,以及二分查找,这些都是面试中常考的点。原创 2017-04-09 21:34:13 · 317 阅读 · 0 评论 -
二叉树前序、中序、后序遍历非递归写法的透彻解析
目录(?)[+] 前言 在前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最简单,后序遍历最难。我们的讨论基础是这样的: [cpp] view plain copy //转载 2017-05-04 18:49:21 · 299 阅读 · 0 评论 -
BSTree树的实现
二叉搜索树:又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树 1.若它的左子树不为空,则左子树所有结点的值都小于根节点的值。 2.若它的右子树不为空,则右子树所有结点的值都大于根节点的值。 3.它的左右子树也分别为二叉搜索树。 下面是关于二叉搜索树的实现,其中比较难以操作的就是删除操作。我们来分析一下删除操作都有哪几种情况: 首先查找元素是否在二叉搜索树中,若不存在,则返回;原创 2017-05-27 18:17:57 · 539 阅读 · 0 评论 -
AVL树的实现
AVL树的概念: 一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树: 1.它的左右子树都是AVL树 2.左子树和右子树高度之差(简称平衡因子)的绝对值不超过(-1,0,1) 如果一棵二叉搜索树是高度平衡的,它就是AVL树,如果它有n个结点,其高度可保持在O(lgn),平均搜索时间复杂度O(lg(n))。AVL在构建时,插入的每一个节点都需要满足搜索二叉树的性质,但同时也要保证左右子树原创 2017-06-16 17:10:46 · 300 阅读 · 0 评论