# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
struct NODE //树的结点和栈的结点合并
{
char data;
struct NODE *lchild;
struct NODE *rchild;
struct NODE *next;
};
struct POINT //指向栈顶和栈底的结构体
{
struct NODE *top;
struct NODE *bottom;
};
struct NODE *BuildTree(void);
struct POINT *InitStack(void);
void Push(struct POINT *p, struct NODE *q);
void Pop(struct POINT *p);
bool Empty(struct POINT *p);
void DFS(struct NODE *root);
int main()
{
struct NODE *root = BuildTree();
DFS(root);
return 0;
}
struct NODE *BuildTree(void) //先序顺序输入
{
char val;
struct NODE *root = NULL;
scanf("%c", &val);
if (' ' == val)
{
return NULL;
}
else
{
root = (struct NODE *)malloc(sizeof(struct NODE));
if (NULL == root)
{
printf("内存申请失败!\n");
C语言实现二叉树的DFS
最新推荐文章于 2024-08-17 16:27:52 发布
本文介绍如何使用C语言实现二叉树的深度优先搜索(DFS)。通过先序遍历创建二叉树,并定义一个结构体用于存储树节点和栈节点,以及初始化、压栈、出栈和判断栈空的辅助函数。最后展示DFS遍历过程。
摘要由CSDN通过智能技术生成