二叉链表的生成
我自己编了一个二叉链表的的生成算法,但不知道对不对,请高手指教,谢谢!
输入示例:
双亲结点儿子结点左右标记
# A L
A B L
A C R
C D L
C E R
D F R
E G L
# # L
程序如下:
#include<iostream>
#include<malloc.h>
#define NULL 0
using namespace std;
int n;
struct queuenode
{
char data;
struct queuenode *lchild,*rchild,*next;
};
struct qlink
{
struct queuenode *front,*rear;
};
void initqueue(qlink *q)
{
struct queuenode *p,*R;
char a,b,s;
cout<<"please input a,b,s:";
cin>>a>>b>>s;
while(a=='#'&&b!='#')
{
p=q->front=q->rear=(queuenode *)malloc(sizeof(queuenode));
p->data=b;
p->next=NULL;
p->lchild=NULL;
p->rchild=NULL;
cout<<"please input a,b,s:";
cin>>a>>b>>s;
}
while(a!='#'&&b!='#')
{
p=(queuenode *)malloc(sizeof(queuenode));
p->data=b;
p->next=NULL;
p->lchild=NULL;
p->rchild=NULL;
R=q->front;
if(R->data==a)
{
if(s=='L')
{
R->lchild=p;
}
else
{
R->rchild=p;
q->front=q->front->next;
}
q->rear->next=p;
q->rear=p;
cout<<"please input a,b,s:";
cin>>a>>b>>s;
}
else
{
q->front=q->front->next;
R=q->front;
}
}
}
void main()
{
qlink myqueue;
initqueue(&myqueue);
}
[解决办法]
不错呀,支持一下。
[解决办法]
楼主的代码风格不错!!不会让人看到烦躁!!