概述
#include <stdio.h>
//二叉树的类型定义
typedef struct BiNode{
char data;
BiNode* LChild;
BiNode* RChild;
}BiNode,*BiTree;
//队列的类型定义
typedef struct Node{
char data;
struct Node* next;
}LinkQueueNode;
typedef struct{
LinkQueueNode *front;
LinkQueueNode *rear;
}LinkQueue;
//初始化队
int InitQueue(LinkQueue *q)
{
q->front=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));
if(q->front!=NULL)
{
q->rear=q->front;
q->front->next=NULL;
return(1);
}
else return(0);
}
//入队操作
int EnterQueue(LinkQueue *q,char x)
{
LinkQueueNode *NewNode;
NewNode=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));
if(NewNode!=NULL)
{
NewNode->data=x;
NewNode->next=NULL;
q->rear->next=NewNode;
q->rear=NewNode;
return(1);
}
else return(0);
}
//出队操作
int DeleteQueue(LinkQueue *q,char *x)
{
LinkQueueNode *p;
if(q->front==q->rear)
return(0);
p=q->front->rear;
q->front->next=p->next;
if(q->rear==p)
q->rear=q->front;
*x=p->data;
free(q);
return(1)
}
//按层序打印二叉树
void printInLines(BiTree* T)
{
LinkQueue q;
InitQueue(&q);
if(T==NULL)
return;
EnterQueue(&q,T);//根节点进队
while(isEmpty(&q))
{
//出对保存队头并访问
BiNode *s;
DeleteQueue(&q,s);
printf("%c",s->data);
//将出队结点的左子树根入队
EnterQueue(&q,s->LChild);
//将出队结点的右子树根入队
EnterQueue(&q,s->RChild);
}
}
//建立二叉树
createBiTree(BiTree* T)
{
char ch;
scanf("%c",&ch);
if(ch=' ')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiNode));
if(!*T)
{
return;
}
createBiTree(T->LChild);
createBiTree(T->RChild);
}
}
void main()
{
BiTree T;
createBiTree(&T);
}
最后
以上就是糟糕太阳为你收集整理的测试程序的全部内容,希望文章能够帮你解决测试程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复