C语言:二叉树的先序遍历
2023-09-27 14:22:46 时间
算法思路
若 p 所指结点不为空,则访问该结点,然后将该结点的地址入栈,然后再将 p 指向其左孩子结点;若 p 所指向的结点为空,则从堆栈中退出栈顶元素(某个结点的地址),将 p 指向其右孩子结点。重复上述过程,直到 p = NULL 且堆栈为空,遍历结束。
代码
#define MAX_STACK 50
void PreOrderTraverse(BTree T)
{
BTree STACK[MAX_STACK], p = T;
int top = -1;
while (p != NULL || top != -1)
{
while (p != NULL)
{
VISIT(p);
STACK[++top] = p;
p = p->lchild;
}
p = STACK[top--];
p = p->rchild;
}
}
相关文章
- C语言控制台打印3D爱心图案
- 怒肝20天用C语言写出的排序集合
- 《C语言接口与实现:创建可重用软件的技术》一1.3 效率
- 基于C语言(B 树索引)实现(控制台) 图书管理系统【100010728】
- 【C语言】编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
- C语言编写Linux终端环境下无缓冲键盘输入 ,并识别上下左右光标键
- (第十列)C语言基础练习:打印杨辉三角,文字解释太烦,直接代码解析。
- LeetCode数据结构_C语言题解系列-树II
- 数据结构之---C语言实现线索二叉树
- C语言与C++语言的特点
- 1070 结绳 (25 分)C语言
- Arduino RGB颜色渐变代码(附上C语言版本)