//
// Inordertraverse.c
// 二叉树链式存储
//
// Created by 丘** on 2021/7/28.
//
#include "Inordertraverse.h"
#include <stdbool.h>
#include<stdlib.h>
typedef struct StackNode
{
int data;
struct StackNode* next;
}StackNode;
typedef struct BiTNode
{
int data;
struct BiTNode* lchild,* rchild;
}BiTnode,* BiTree;
void Push(StackNode*s,BiTree p)//入栈
{
s->data=p->data;
s=s->next;
}
void Pop(StackNode*s,BiTree q)//弹栈
{
q->data=s->data;
printf("%d will be popn",q->data);
StackNode* p=s;
s=s->next;
free(p);
}
void InitStack(StackNode* s)
{
s=NULL;
}
bool StackEmpty(StackNode* s)
{
if(s==NULL)
{
return true;
}
return false;
}
void InorderTraverse(BiTree T)
{
StackNode s;
InitStack(&s);
BiTree p=T;
BiTree q=(BiTree)malloc(sizeof(BiTnode));
while(p!=NULL||!StackEmpty(&s))
{
if(p!=NULL)
{
Push(&s, p);
p=p->lchild;
}
else
Pop(&s,q);
int e=q->data;
printf("%d has been cout",e);
p=q->rchild;
}
}
本文发布于:2024-01-28 14:10:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064222467980.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |