Home > Back-end >  Who will do the binary tree
Who will do the binary tree

Time:10-23

Void InOrderBinaryTree (bitree * root)
{
Bitree * p;
Bitree * s [MAX_STACK_LEVEL];
Int top=0;
Short int IsStop;
P=root;
IsStop=FALSE;
while (! IsStop)
{
While ((p!=NULL) & amp; & (! IsStop))
{
If (top & lt; MAX_STACK_LEVEL - 1)
{
Top++;
S [top]=p;
P=p - & gt; Lchild;
}
The else {
Printf (" Stack overflow! \n");
IsStop=TRUE;
}
}
if (! IsStop)
{
If (top!=0)
{
P=s [top];
Printf (" % c ", p - & gt; The data);

Top -;
P=p - & gt; Rchild;
}
The else
IsStop=TRUE;
}
}
}

//sequence after binary tree traversal - a recursive version
Void PostOrderRetrieveBinaryTree (bitree * root)
{
///computer homework 1 - his computer to realize... }

Void PostOrderBinaryTree (bitree * root)
{
Bitree * p;
The pre bitree *=NULL;
Bitree * s [MAX_STACK_LEVEL];
Int top=0;
P=root;
While ((top! (p=0) | |!=NULL))
{
While (p!=NULL)
{
If (top & lt; MAX_STACK_LEVEL - 1)
{
Top++;
S [top]=p;
P=p - & gt; Lchild;
}
The else
{
Printf (" Stack overflow! \n");
return;
}
}

If (top!=0)
{
P=s [top];
If ((p - & gt; Rchild==NULL) | | (p - & gt; Rchild==pre))
{
Printf (" % c ", p - & gt; The data);

Top -;
The pre=p;
P=NULL;
}
The else {
P=p - & gt; Rchild;
}
}
}
}
Void LevelOrderBinaryTree (bitree * root)
{
Bitree * p;
Bitree * q [MAX_QUEUE_LENGTH];
Int front=MAX_QUEUE_LENGTH - 1;
Int rear=MAX_QUEUE_LENGTH - 1;
Short int IsStop;
P=root;
IsStop=FALSE;
while (! IsStop)
{
If (p!=NULL)
{
Printf (" % c ", p - & gt; The data);
If (p - & gt; Lchild!=NULL)
{
If (((rear + 1) % MAX_QUEUE_LENGTH)==front)
{
Printf (" Queue full! \n");
IsStop=TRUE;
}
The else
{
Rear=(rear + 1) % MAX_QUEUE_LENGTH;
Q (rear)=p - & gt; Lchild;
};
}
If (p - & gt; Rchild!=NULL)
{
If (((rear + 1) % MAX_QUEUE_LENGTH)==front)
{
Printf (" Queue full! \n");
IsStop=TRUE;
}
The else
{
Rear=(rear + 1) % MAX_QUEUE_LENGTH;
Q (rear)=p - & gt; Rchild;
};
}
}
If (rear!=front)
{
P=q [(front + 1) % MAX_QUEUE_LENGTH];
The front=(front + 1) % MAX_QUEUE_LENGTH;
}
The else
IsStop=TRUE;
}
}

Bitree * FindTargetNode (bitree * root, char targetdata)
{
Bitree * p;
Bitree * T;
Bitree * s [MAX_STACK_LEVEL];
Int top=0;
Short int IsStop;
P=root;
IsStop=FALSE;
while (! IsStop)
{
While ((p!=NULL) & amp; & (! IsStop))
{
If (p - & gt; Data=targetdata https://bbs.csdn.net/topics/=
{
T=p;
IsStop=TRUE;
}
The else
{
If (top & lt; MAX_STACK_LEVEL - 1) {
Top++;
S [top]=p;
P=p - & gt; Lchild;
}
The else
{
Printf (" Stack overflow! \n");
T=NULL;
IsStop=TRUE;
}
}
}
if (! IsStop)
{
If (top!=0)
{
P=s [top];
Top -;
P=p - & gt; Rchild;
}
The else
{
T=NULL;
IsStop=TRUE;
}
}
}

Return T;
}
Bitree * FindTargetNode (bitree * root, enum BinaryTreeNodeTypeSet NodeType)
{
Bitree * p;
Bitree * T;
Bitree * s [MAX_STACK_LEVEL];
Int top=0;
Short int IsStop;
Short int b;

P=root;
IsStop=FALSE;
while (! IsStop)
{
While ((p!=NULL) & amp; & (! IsStop))
{
The switch (NodeType)
{
Case HAS_NO_CHILD:
B=((p - & gt; Lchild==NULL) & amp; & (p - & gt; Rchild==NULL));

break;

Case HAS_NO_LEFTCHILD:
B=((p - & gt; Lchild==NULL));

break;

Case HAS_NO_RIGHTCHILD:
B=((p - & gt; Rchild==NULL));

break;

Default:
break;
}

If (b)
{
T=p;
IsStop=TRUE;
}
The else
{
If (top & lt; MAX_STACK_LEVEL - 1)
{
Top++;
S [top]=p;
P=p - & gt; Lchild;
}
The else
{
Printf (" Stack overflow! \n");
T=NULL;
IsStop=TRUE;
}
}
}

if (! IsStop)
{
If (top!=0)
{
P=s [top];
Top -;
P=p - & gt; Rchild;
}
The else
{
T=NULL;
IsStop=TRUE;
}
}
}

Return T;
}

Void AddChild (bitree * root, char newdata, enum BinaryTreeNodeTypeSet NodeType)
{
Bitree * T;
Bitree * p;
T=FindTargetNode (root, NodeType);
If (T!=NULL)
{
P=new bitree;
P - & gt; Lchild=NULL;
P - & gt; Data=https://bbs.csdn.net/topics/newdata;
P - & gt; Rchild=NULL;

The switch (NodeType)
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related