今天刚学完那个双链表的有关知识,可遇到了一些问题。
我这个程序的要求事建一个双链表,头节点事空的。
建好后输出。
我的程序是这样的;
#include <stdio.h>
#include <malloc.h>
struct aa
{
int info;
struct aa *left,*right;
};
struct aa *creat()
{
return NULL;
}
struct aa *insert(struct aa *head,int x)
{
struct aa *p;
p=(struct aa *)malloc(sizeof(struct aa));
p->info=x;
if (!head)
{
p->right=NULL;
p->left=NULL;
}
else
{
head->left=p;
p->right=head;
p->left=NULL;
}
head=p;
return head;
}
void disp(struct aa *head1)
{
struct aa *p;
printf("\n");
p=head1;
if (!p)
printf("\n双链表是空的\n");
else
{
printf("\n双链表各个节点值为:\n");
while(p)
{
printf("%-5d",p->info);
p=p->right;
}
}
printf("\n");
}
void main()
{
struct aa *head,*head1,*p;
int n,m;
head=creat();
printf("please input the one date:\n");
scanf("%d",&n);
head1=insert(head,n);
printf("please input the date again:\n");
scanf("%d",&m);
puts("input the list end with '0':\n");
while (m)
{
p=(struct aa *)malloc(sizeof(struct aa));
p->info=m;
head1->right=p;
p->left=head1;
p->right=NULL;
scanf("%d",&m);
}
disp(head1);
}
程序应该是有问题的,希望各位给看看。
[此贴子已经被作者于2007-4-10 22:15:19编辑过]