要具体的代码,二叉链表的定义如下:
typedef struct btinode
{
int key;
struct bitnode *lchild,*rchild;
}*bitree; /*二叉链表的
插入要整串插入,谢谢~
要具体的代码,二叉链表的定义如下:
typedef struct btinode
{
int key;
struct bitnode *lchild,*rchild;
}*bitree; /*二叉链表的
插入要整串插入,谢谢~
//中序遍历
int InOrderTraverse(bitree T,int (*Visit)(TElemType e)) //TElemType 为元素的类型
{
Stack S;
bitree p;
InitStack(S);//初始化栈
p = T;
while(p||!StackEmpty(S)) //p非空或栈S非空
{
if(p) //根指针进栈,遍历左子数
{
Push(S,p);
p = p->lchild;
}
else //根指针退栈,访问根节点,遍历右子数
{
Po(S,p);
if(!Visit(p->data)) //Visit是函数指针,你可以给它赋予不同的对象,让它调用
{
return 0;
}
p = p->rchild;
} //else
}//while
return 1;
}