数据结构
文章平均质量分 85
数据结构学习专题
李白同学
少年没有乌托邦,心向远方自明朗!
展开
-
树和二叉数
也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号。2. 完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。以某节点为根的子树中任一节点都称为该节点的子孙。如上图:所有节点都是A的子孙。一个节点含有的子树的根节点称为该节点的子节点;若一个节点含有子节点,则这个节点称为其子节点的父节点;原创 2024-07-30 17:38:25 · 1272 阅读 · 0 评论 -
线性表之--栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈中的数据元素遵守后进先出LIFO的原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。栈的实现一般可以使用,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。原创 2024-07-30 16:50:13 · 853 阅读 · 0 评论 -
双向链表(C语言版)
这里的“带头”跟单链表的“头结点”是两个概念,实际上在单链表阶段称呼不太严谨,但是为了更好地理解就直接称为单链表的头结点。带头链表里的头结点,实际为“哨兵位”,哨兵位结点不存储任何有效元素,只是站在这里“放哨的”。原创 2024-07-23 19:36:52 · 374 阅读 · 0 评论 -
单链表(C语言详细版)
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车次的车厢会额外增加几节。只需要将火车里的某节车厢去掉或加上,不会影响其他车厢,每节车厢都是独立存在的。车厢是独立存在,且每节车厢都有车门。想象一下这样的场景,假设每节车厢的车门都是锁上的状态,需要不同的钥匙才能解锁,每次只能携带一把钥匙的情况下如何从车头走到车尾?最简单的做法:每节车厢里都放一把下一节车厢的钥匙。在链表里,每节“车厢”是什么原创 2024-07-09 21:07:41 · 712 阅读 · 0 评论 -
通讯录(C语言详细版)
/ 定义联系人数据结构// 姓名 性别 年龄 电话 地址// 姓名// 性别int age;// 年龄// 电话// 地址}peoInfo;原创 2024-07-04 20:40:49 · 831 阅读 · 0 评论 -
顺序表(C语言详细版)
线性表(lina list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串......线性表在逻辑上是线性结构,也就是说连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2024-07-01 21:59:15 · 730 阅读 · 0 评论 -
数据结构:时间复杂度和空间复杂度计算
1)算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度, 而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主 要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间 复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。2)时间复杂度的概念。原创 2024-05-02 16:45:28 · 986 阅读 · 0 评论