![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 58
数据结构基础
施霁
Serendipity!
展开
-
二叉排序树的创建与删除(C语言)
对于这个问题,可能与节点指针有关系,我的想法是,如果直接删除,相当于与前一个节点直接割裂了,但是如果通过前一个节点直接指向,就避免了这种行为,以多余的2为例,如果通过前一个节点指向这个节点我们设置为NULL,那遍历的时候自然不会打印当前节点的值,但是如果我们只是把当前节点(cur)设置为NULL,这并不是说明当前节点值就不存在了,通过遍历还是能得到原始的值,这就解释了为什么会有两个2。第二步,判断当前节点是否非空,若是空节点则直接申请内存并构造叶子节点,若非空则比较插入节点的data与当前节点的data;原创 2024-01-09 10:15:22 · 497 阅读 · 0 评论 -
堆栈(顺序栈)的创建,栈满与栈空判断,入栈,出栈等操作(C语言)
/重命名,可根据不同的存储元素随时更改//确定栈顶位置//利用数组存储元素//栈容量。原创 2023-12-20 21:11:19 · 1097 阅读 · 1 评论 -
单向链表的创建、删除、插入、反转、查找等操作(C语言)
int data;原创 2023-12-20 18:13:46 · 727 阅读 · 0 评论 -
循环队列的创建,出队,入队等操作(C语言)
目录队列的结构体定义空队列的创建队满队空判断入队操作出队操作前几天忙着学校的算法比赛,没有更新,见谅!今天是循环队列的基础操作!!!循环队列可以解决假溢出的问题,但对于队满和队空需要有额外的判断,有以下两种方式:1. 增加变量size用来记录队列中的元素个数,根据size的大小即可判断队列是满是空;2. 牺牲一个空间,即Front所在的位置不存储元素,队满条件即为:(Rear+1%Maxsize == Front,队空条件即为:Rear == Front;注:本次基于第二种方法实现对循环队列的基础操作原创 2023-12-25 18:53:22 · 468 阅读 · 1 评论 -
堆栈的应用:后缀表达式求值问题(C语言)
(2)当读入的是一个运算符时,我们需从栈中弹出适量的数字参与运算,并将运算的结果再次压入栈中;第七次扫描得到“-”,依次弹出8.4与2.5并进行求差得到-5.9,将其入栈;第三次扫描得到“+”,依次弹出1.3与1.2并进行求和得到2.5,将其入栈;第六次扫描得到“*”,依次弹出4.2与2.0并进行求积得到8.4,将其入栈;这是我们常见的中缀表达式如:(1.2+1.3)-(2.0*4.2)(1)当读入的是一个运算数字时,我们将其压入栈中;第一次扫描得到1.2,将其入栈;第四次扫描得到2.0,将其入栈;原创 2023-12-21 23:24:16 · 812 阅读 · 0 评论