//中序遍历
void mid(tree_p T)
{
if(T==NULL)
{
return;
}
mid(T->lchild);
printf("%c->",T->data);
mid(T->rchild);
}
//后序遍历
void back(tree_p T)
{
if(T==NULL)
{
return;
}
back(T->lchild);
back(T->rchild);
printf("%c->",T->data);
}
#include "link.h"
//创建头尾指针结构体
Q_p creat_head()
{
Q_p Q=(Q_p)malloc(sizeof(Q));
if(Q==NULL)
{
printf("申请失败\n");
return NULL;
}
Q->front=NULL;
Q->rear=NULL;
return Q;
}
//创建节点
node_p creat_node(datatype data)
{
node_p new=(node_p)malloc(sizeof(node));
if(new==NULL)
{
printf("申请失败\n");
return NULL;
}
new->data=data;
new->next=NULL;
return new;
}
//入列
void push_link(Q_p Q,datatype data)
{
if(Q==NULL)
{
printf("入参为空\n");
return;
}
node_p new=creat_node(data);
new->next=Q->front;
Q->front=new;
if(Q->rear==NULL)
{
Q->rear=new;
}
}
//出列
void out_link(Q_p Q)
{
if(Q==NULL)
{
printf("入参为空\n");
return;
}
node_p temp=Q->front;
while(temp->next!=Q->rear)
{
temp=temp->next;
}
free(Q->rear);
temp->next=NULL;
Q->rear=temp;
}
//遍历
void show_link(Q_p Q)
{
if(Q==NULL)
{
printf("入参为空\n");
return;
}
node_p temp=Q->front;
while(temp!=NULL);
{
printf("%-3d",temp->data);
temp=temp->next;
}
putchar(10);
}
//销毁
void free_link(Q_p Q)
{
if(Q==NULL)
{
printf("入参为空\n");
return;
}
node_p del=Q->front;
node_p temp=del;
free(Q);
while(del!=NULL)
{
temp=temp->next;
free(del);
del=temp;
}
Q=NULL;
}