首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

二叉链表的生成解决思路

2012-02-16 
二叉链表的生成我自己编了一个二叉链表的的生成算法,但不知道对不对,请高手指教,谢谢!输入示例:双亲结点儿

二叉链表的生成
我自己编了一个二叉链表的的生成算法,但不知道对不对,请高手指教,谢谢!
输入示例:

双亲结点儿子结点左右标记
  # 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);
}

[解决办法]
不错呀,支持一下。
[解决办法]
楼主的代码风格不错!!不会让人看到烦躁!!

热点排行