- 博客(128)
- 收藏
- 关注
原创 79-C语言-小球降落和反弹问题
简介:一个球从100m高度处落下,每次落地后反弹回原高度一半,再落下,再反弹。问:它在第十次落地,共运动了多少米,第十次反弹又多高呢?
2023-12-18 22:56:56
667
原创 78-C语言-完数的判断,以及输出其因子
简介:一个数如果恰好等于它的因子之和,这个数就称为完数,C语言编程找出1000之内的所有完数,并输出其因子。
2023-12-18 22:22:35
563
原创 23-数据结构-内部排序-归并排序
归并,也叫合并,合二为一嘛,归并排序实际上相当于二叉树递归,先左右拆分,最后给数组拆分为每个数据为独立个体,再执行合并操作,
2023-10-19 21:21:53
333
原创 18-数据结构-查找-B树和B+树
总的计算知识点,全在图里。主要有B树中结点总数据范围的计算。根结点,终端节点,叶子节点的区分,首先公式中的字母含义。m为几阶B树(B树中结点中度最多的便是m),n为总数据个数,即关键字数。此外,查找的时候,是类中序查找的,大小排序就根平衡二叉树差不多只不过B树中的平衡因子都为0,左小又大,支持随机查找——先在结点内遍历,遍历不到,再去相应区间去往下遍历。
2023-09-12 23:10:53
277
原创 15-数据结构-二叉树的遍历,递归和非递归
简介:本文主要是代码实现,二叉树遍历,递归和非递归(用栈)。主要为了好理解,直接在代码处,加了详细注释,方便复习和后期默写。主要了解其基本思想,为后期熟练应用打基础。遍历的意义,就是为了实现在二叉树上,进行各种操作,给每个结点都光顾到位,到根节点时,进行当前节点的操作。
2023-08-31 23:00:24
411
原创 14-数据结构-二叉树的创建以及前中后遍历,以及结点和叶子节点的计算(C语言)
二叉树,这里采用孩子链表存储法,即一个数据域和两个左右孩子指针域。随后递归进行遍历即可。在创建二叉树的时候,先创建各个二叉树结点(这里的结点采用动态分配,因此结点为指针变量),随后,再根据逻辑结构图,手动通过左右指针域,链接到对应位置即可。
2023-08-25 21:22:13
711
原创 13-数据结构-串以及KMP算法,next数组
第二个位置时,则找第一个位置,然后错一位,进行比对,比对时,下面的那一串向右移动,直到比对完重复部分,之后重复部分长度+1,便是模式串下标所更新的值。当i和j中的值都相等时,都往后移动,当不匹配时,则进行下标的更新,主串中的i,更新为i=k+1,即主串的i从左至右,挨个比对,第一个开始,比对失败,则第二个开始,重新比对。简单模式匹配算法为(m*n),主串长为m,模式串为n,因为最坏的情况,每次主串都要重新比对,所以为m,而每次比对,模式串都需要从头到尾重新遍历,所以m*n。串的长度,实际上为字符串长度。
2023-08-14 19:36:41
330
原创 12-数据结构-数组、矩阵、广义表
这一章节理解基本概念即可。数组要看清其实下标是多少,且二维数组,存取数据,要先看清楚是按照行存还是按列存,按行则是正常一行一行的取读写,按列则是,从左至右,一列一列的弄。此外,数组中具体坐标的空间大小要会计算,每块存储单元,算到该数组坐标的前一位的数组大小,如A[5][3],起始位A[0][0],则计算A[5][3]的时候,先计算0-4行的空间大小,在计算第5行的大小,计算0-2的大小,将其加上即可。
2023-08-14 11:46:30
1029
原创 11-数据结构-栈和队列的应用(C语言)
然后读取,当读取左括号时,入栈,当遇到右括号时,栈内出栈,与之对比,若匹配则继续扫描数组,否则则非法,程序结束,非法情况除了括号不对应外,还有,两种,一个是扫到右括号,去栈内拿括号,结果栈空了。方法一:我们可以根据优先级,一块一块的去算,先计算(C-D)为CD-,E/F为EF/,而B*(CD-)也是两操作数,因此为BCD-*,随后A+(BCD-*)为两个操作数,所以ABCD-*+,最后(ABCD-*+)-(EF/)为两个操作数,因此为:ABCD-*+EF/-.递归就是在系统栈中,开辟临时空间,进行操作。
2023-08-12 10:17:24
702
原创 10-数据结构-队列(C语言)
简介:由单链表构成,然后由队头指针和队尾指针,进行操作,因此定义两个结构体,一个结构体是定义队列结点类型的,一个则是封装队头,队尾指针。/链队结点int data;}LinkNode;//链队的头指针和尾指针}LinkQueue;
2023-08-10 17:50:38
1143
原创 5-C语言-三子棋
4.而打印棋盘则需要研究下,为了更美观,我们想打印一个小格子一个小格子,观察发现,每一行打印,打印两种东西,第一次打印一行数据,每个数据后面又仅跟一个|,第二行则打印---,相当于小格子的下边界线,每次打印分割线后面紧跟一个|。3.而三子棋游戏,首先需要有一个三子棋棋盘,棋盘在这里相当于二维数组,一次先初始化棋盘,即数组,给棋盘每个位置变为空格。7.每次下棋时,都会进行一次判定,如果得到的判定结果不是'C'(继续),则跳出循环,进行相应的输出,判断输赢。2.实现基本思路,选择1,进入游戏。
2023-07-08 18:08:25
325
原创 3-C语言-五个学生并排坐,问第五个学生的年龄多大。
问第五个学生,他说比第四个大两岁,问第四个学生,他说比第三个大两岁,一直重复,直到第一个,第一个说他10岁了。问:第五个学生多大?
2023-06-30 15:51:03
508
原创 6-数据结构-线性表-单链表-创建以及尾插法
而打印单链表,只需要定义一个节点指针,指向单链表的最前面,然后用该指针,遍历打印当前的data域即可,而单链表的遍历,需要自我赋值,即给下一个结点的地址,赋值给自己,实现指针往后移动。此外,遍历的时候,是直接看指针空不空,而不用看next域,因为这里要实现的是打印,扫描当前节点,如果为next,则在最后一个节点时,他的next为空,则不会进入循环,去打印最后一个数据。单链表,就是由一块块的空间,单向串成串,连起来,每一块空间,便是单链表结构体,该结构体中,含有两部分:1-所需存储数据的,data部分。
2023-06-08 21:05:10
486
原创 4-数据结构-线性表-顺序表的查找和修改以及总结
顺序表的查找以及修改,跟数组一样,直接进行遍历查找,以及直接找到数组中某个值。修改,一样的操作,先给修改函数写好。只需给该下标处的值,赋值,进行覆盖即可。下面是所有代码总结。包含前面顺序表的定义,初始化,打印,检查,插入和删除。
2023-06-03 23:09:03
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人