
数据结构
文章平均质量分 96
数据结构学习,探究原理。
少年与云眠
朝气蓬勃,热气腾腾。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
平衡二叉树(树的旋转)
1.概念 平衡二叉树建立在二叉排序树的基础上,目的是使二叉排序树的平均查找长度更小,即让各结点的深度尽可能小,因此,树中每个结点的两棵子树的深度不要偏差太大。 平衡二叉树的递归定义:平衡二叉树是一棵二叉树,其可以为空,或满足如下2个性质:①左右子树深度之差的绝对值不大于1。②左右子树都是平衡二叉树。 平衡因子的概念:结点的平衡因子 = 结点的左子树深度 — 结点的右子树深度。若平衡因子的取值为-1、0或1时,该节点是平衡的,否则是不平衡的。 最低不平衡结点的概念:用A表示最低不平衡结点,则A的祖先结点可能有转载 2020-10-15 16:18:11 · 2260 阅读 · 0 评论 -
2.3 线性表的链式表示和实现(双向循环链表)
盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 ——陶渊明 一、前言 学习了单链表,那么双向循环链表的意思就是一个结点有两个指针域,分别指向直接前驱结点和直接后继结点,并且尾结点指向头结点,这样的好处是什么呢? ...原创 2020-06-30 21:29:45 · 556 阅读 · 0 评论 -
2.2 线性表的链式表示和实现(单链表)
一、前言 学习了线性表的顺序表示,我们知道顺序表示可以随机存取元素,意味着逻辑上相邻的两个元素在物理位置上也相连,但是我们可以看到插入和删除元素需要移动大量元素,而且还需要事先分配好一定量的空间。 二、链式表示介绍 链式存储结构意味着逻辑上相邻的元素在物理位置上不一定也相邻,在删除和插入元素时不需要移动大量元素,同时不支持随机存取,必须找到直接前驱和直接后继才能操作相应的元素。 对于单链表...原创 2020-04-24 22:06:17 · 735 阅读 · 0 评论 -
2.2.1线性表的链式表示中头指针和头结点的理解
学习是一件快乐的事,先上个图片放松一下 一、前言 在学习链表时,会有头指针和头结点这两个概念,那么这二者的关系是什么? 为什么要加头结点? 加了头结点有哪些好处? 这篇博客是我的一些个人理解,希望能对您有所帮助。 二、头指针和头结点 1.头指针 头指针唯一代表着一个链表(对于单链表来说),即这个指针是我们访问链表的入口。 2.头结点 头结点是在首元结点(正式存放数据的第一个...原创 2020-04-21 18:46:33 · 2827 阅读 · 0 评论 -
2.1 线性表的顺序表示实现
一 、定义 线性表是最常用且最简单的一种数据结构,是一个n个数据元素的有限序列。 (1)存在唯一的一个被称作“第一个”的数据元素 (2)存在唯一的一个被称作“最后一个”的数据元素 (3)除第一个之外,集合中的每个元素均只有一个直接前驱 (4)除最后一个之外,集合中的每个元素均只有一个直接后继 二、线性表的顺序表示及实现 线性表的顺序表示指的是用一组地址连续的存储单元依次存储...原创 2020-04-19 18:55:50 · 708 阅读 · 0 评论 -
关于线性表的引用(&)参数类型
目录 一、前言 二 、具体代码 三 、引用类型介绍 四、具体分析 五、总结 一、前言 最近在看数据结构,忽然看到线性表的链式表示操作中参数用了引用类型,刚开始没太理解,后来想了想,感觉还是有必要整理一下。 二 、具体代码 其中结构体部分代码如下: typedef s...原创 2020-04-19 00:26:21 · 4022 阅读 · 2 评论 -
1.3 字符串相关操作的实现
一、简介 字符类型数据是我们常用的数据类型,比如姓名、籍贯、描述信息等等,为此,我们需要掌握一些常用的字符串操作。 二、常用操作 长度计算、复制、替换、删除、插入、比较、抽取、分割、匹配、合并 这部分很重要,为以后的链表操作打下基础 三、常用操作实现 长度计算 复制 替换 删除 插入 比较 抽取 分割 匹配 合并 ...原创 2020-04-17 17:59:27 · 383 阅读 · 0 评论 -
1.2 大数阶乘问题
一、大数的概念 首先我们要知道计算机语言中的数据类型是有范围的,比如在C语言中我们可以看到 unsigned int 和 unsigned long long 的最大值,下面代码会给出相关信息。 #include<stdio.h> #include<limits.h> int main(){ unsigned int num=10; printf("unsi...原创 2020-04-15 21:39:45 · 664 阅读 · 0 评论 -
1.1 数组逆置(C语言实现)
数组是一种常见的容器,本次我们练习一下数组逆置问题。 在解决问题之前,我们第一步是要明确问题是什么,然后思考解决问题的方法,最后写代码进行实现 第一步:分析问题,找到解决问题的思路 由上图可以分析,数组逆置需要将中心点两边的元素进行交换。 那么这又延伸出两个问题,如何选取中心点?如何交换两个元素? 第二步:选取中心点 一个数组的元素个数 n 要么是奇数,要么是偶数,这里我们分情况...原创 2020-04-13 15:31:00 · 13491 阅读 · 7 评论