我写了个关于线性表的链式实现的程序,写好了创建和遍历链式表的程序,基本运行通过。可当我(在主函数case 1)输入“建立0个元

classbee 2003-04-06 04:11:49
#include<stdio.h>
#include<malloc.h>
typedef int ElemType;
struct List{
ElemType data;
struct List *next;
};
typedef struct List LNode;
typedef LNode *LinkList;

void CreateList(LinkList head,int n)
{
printf("%d",&head);
int i;
LinkList p,q;
q=head;
for(i=1;i<=n;i++){
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=q->next;
q->next=p;
q=p;
}
}

int ListTraverse(LinkList head)
{
int i;
LinkList p;
p=head;
if(p==NULL){printf("空表\n");return 0;}
p=head->next;
for(i=1;p->next!=NULL;i++){
printf("%d::%d ",i,p->data);
p=p->next;
}
printf("%d::%d ",i,p->data);
}

void WelcomeChoice()
{
printf(" Welcome to here\n");
printf(" 1. CreateList\n");
printf(" 2.ListTraverse\n");
printf(" 0.exit\n");
printf(" Please choice one of them!:)");
}

void main()
{
LinkList head;
head=NULL;
head=(LinkList)malloc(sizeof(LNode));
head->next=NULL;
int choice;
do{
WelcomeChoice();
scanf("%d",&choice);
switch(choice){
case 1 :{
int n;
printf("想建立的元素个数:");
scanf("%d",&n);
CreateList(head,n);}
break;
case 12:{printf("%d",&head);
ListTraverse(head);}break;
case 0 :printf("Thank you!Byebye...\n");break;
default:printf("输入错误!请重新输入:\n");
}
}while(choice!=0);
}
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FishCrazy 2003-04-08
  • 打赏
  • 举报
回复
int CreateList(LinkList head, int n){
int i=0;
head=(LinkList)malloc(sizeof(LNode));
head->data=n; /* 建议将head作为一个头指针,它里面的数据就是链表的长度 */
head->next=NULL;
LinkList p, q;
q=head;
if(n==0) return 1;
for(; i<n; i++){
p=(LinkList)malloc(sizeof(LNode));
scanf("%d", &p->data);
p->next=q->next;
q->next=p;
q=p;
}
return 1;
}
FishCrazy 2003-04-08
  • 打赏
  • 举报
回复
To ZhangYv:

你说的第一种定义函数的方法似乎有问题:

void CreateList(LinkList head, int &n); /* 这里的 int &n 在编译器里汇报错 */
diabloqin 2003-04-08
  • 打赏
  • 举报
回复
gz
ZhangYv 2003-04-06
  • 打赏
  • 举报
回复
void CreateList(LinkList head,int n)和调用时CreateList(head,n); 传递参数错误。
1 void CreateList(LinkList head,int &n) 调用CreateList(head,n); //引用
2 void CreateList(LinkList head,int *n) 调用 时CreateList(head,&n); //用指针传地址
DarthVader 2003-04-06
  • 打赏
  • 举报
回复
楼主可否把问题说详细点

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧