数据结构与算法 in c
Spider-Ning
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树的五个性质
性质1:在二叉树的第i层上最多有2^(i-1)个结点(i≥1)。第一层是根结点,只有一个,所以2(1-1)=20=1。 第二层有两个,2(2-1)=21=2。 第三层有四个,2(3-1)=22=4。 第四层有八个,2(4-1)=2^3=8。性质2:深度为k的二叉树至多有2^k-1个结点(k≥1)。注意这里一定要看清楚,是2k后再减去1,而不是2(k-1)。以前很多同学不能完全理解,这样去记忆,就容易把性质2与性质1给弄混淆了。 深度为k意思就是有k层的二叉树,我们先来看看简单的。 如果有一层,至多1=原创 2020-06-02 15:57:22 · 13574 阅读 · 0 评论 -
二叉树
二叉树的特点1.每个结点最多有两棵子树,所以二叉树中不纯在度大于2的结点。注意不是只有两棵子树,而是最多有。没有子树或者只有一棵子树也是可以的。2.左子树和右子树是有区别的,必须分开来3.即使树中只有一棵子树,也要区别是左子树还是右子树二叉树的五种基本形态1.空二叉树2.只有一个根结点3. 根结点只有左子树4.根结点只有右子树5.根结点即有左子树又有右子树特殊二叉树1. 斜树顾名思义,斜树一定要是斜的:所有结点都只有左子树的二叉树叫做左斜树;所有结点都是只有右子树的二叉树叫做右斜原创 2020-06-02 15:46:20 · 2461 阅读 · 0 评论 -
树的定义
树(Tree)是n(n>=0)个结点的有限集。当n=0时称为空树。在任意一棵非空树中1.有且仅有一个特定的称为根的结点;2.当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2………Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)子树T1和子树T2就是根结点A的子树。当然,D、G、H、I组成的树又是B为根结点的子树,E、J组成的树是以C为根结点的子树。对于树的定义还需要强调两点1.m>0时,子树的个数没有限制,但它们一定是互不相交的原创 2020-06-02 15:35:42 · 2505 阅读 · 0 评论 -
链式存储
1.特点线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的这就意味着,这些数据元素可以存在内存未被占用的任意位置2.结点是什么在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点。 在C语言中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据...原创 2020-04-30 17:34:57 · 2228 阅读 · 0 评论 -
顺序表的优缺点
1.线性表的顺序存储结构,在存、读数据时,不管是哪个位置,时间复杂度都是O(1);而插入或删除时,时间复杂度都是O(n)。这就说明,它比较适合元素个数不太变化,而更多是存取数据的应用。当然,它的优缺点还不只这些……优点:无需为表示表中元素之间的逻辑关系而增加额外的存储空间可以快速地存取表中任一位置的元素缺点:插入删除操作需要移动大量元素当线性表长度变化较大时,难以确定存储空间的容量...原创 2020-04-30 17:17:52 · 9062 阅读 · 0 评论 -
顺序表的基本操作
准备工作#include <Stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20typedef int Status;typedef int ElemType;创建线性表创建一个简单的线性表...原创 2020-04-30 17:09:16 · 207 阅读 · 0 评论 -
线性表长度和数组长度
数组长度数组的长度是指存放线性表的存储空间的长度,存储分配后这个量一般是不变的有个别同学可能会问,数组的大小一定不可以变的吗?我怎么看到有书中谈到可以动态分配的一维数组,不过这会带来性能上的损耗...原创 2020-04-30 10:38:42 · 5708 阅读 · 1 评论
分享