- 博客(5)
- 收藏
- 关注
原创 树二叉树森林的转换(详解)(c语言版)
转换成二叉树递归遍历完根节点的左子树时,接下来递归遍历其右子树,而此右子树也是森林中第二个树的根节点,以此类推,可以得出转换成二叉树的前序遍历正好就是森林先序遍历的结果。树的先根遍历可以看成是以根节点为起点,围绕整个树跑一圈,所经历的节点值的序列就是树的先根遍历的结果(重复出现过的节点值不再加入到序列中)。树的后根遍历可以看成是剪葡萄一样,将节点依次剪下后得到的序列就是树的后根遍历的结果,这一点和二叉树的后序遍历有点相似。森林的先序遍历顺序即按照森林的每棵树的顺序,对每一棵树进行后根遍历。
2023-11-12 22:36:48 367
原创 关于消耗scanf和getchar产生的多余换行符
问题的根源在于正在c和c++中空格和换行都是可以作为字符录入的,这就导致了当我们再录入字符时 ,按下回车或空格后,会发生将回车和空格也录入,导致输出出现错误。fflush() 通常仅用于输出流。其目的是清除(或刷新)输出缓冲区并将缓冲的数据移动到控制台(如果是标准输出)或磁盘(如果是文件输出流)。x正确保存了3,然而a保存了换行符’\n’(ascll码为10),b保存了a,c保存了b,录入的c被丢弃掉。1.getchar()消耗多余字符;ostream 指向输出流。最近一次操作未输入,
2023-11-13 23:06:27 124
原创 头插法创建单链表
注意:头插法创建时数据读入顺序与线性表中的逻辑顺序正好相反。即线性表(12,16,6,22),要想在链表中也维持这种顺序,则输入的顺序是22,6 16,12.PrintList函数是从单链表的第二个结点开始的,这是因为此链表是带头节点的,头结点不存储据。根据用户输入的元素,按照头插的方式插入一个带头结点的链表,最后输出这个链表的内容;把没用的头结点也打印出来了!
2023-11-08 19:57:00 194 1
原创 线性表学习之顺序表的归并
算法思路:依次扫描A和B的元素,比较当前元素的值,将较小的元素赋值给C,直到如此一个线性表扫描完毕 ,然后将未处理完的一个顺序表中的余下部分元素连在表C的后面即可。表C的容量要足够容纳A,B两个线性表中的所有元素。题目要求:创建顺序表A和B,其元素均按从小到大的顺序排列,编写一个算法将它们合成一个顺序表C,要求C的元素也是升序排序。
2023-11-07 20:58:35 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人