|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct List
{
int data;
struct List *next;
}Node,*LinkList;
LinkList InitList_List(void)
{
LinkList head;
head=(Node *)malloc(sizeof(Node));
if(head==NULL)
exit(1);
head->next=NULL;
return head;
}
LinkList CreatList(int *a,int n)
{
LinkList head,p,q;
int i;
head=p=InitList_List();
head->data=0;
for(i=0;i<n;i++)
{
q=(Node *)malloc(sizeof(Node));
q->data=a[i];
p->next=q;
p=q;
}
p->next=NULL;
return head;
}
void OutList(LinkList head)
{
LinkList p;
p=head->next;
printf("head");
while(p->next!=NULL)
{
printf("->%3.0f",p->data);
p=p->next;
}
}
int main()
{
int a[5]={1,2,3,4,5};
LinkList head;
head=CreatList(a,N);
OutList(head);
return 0;
}
为什么无法正确输出答案,而是head->0->0->0->0
三个地方错误:
1.
LinkList CreatList(int *a,int n)
{
LinkList head,p,q;
int i;
head=p=InitList_List();
head->data=0;
for(i=0;i<n;i++)
{
q=(Node *)malloc(sizeof(Node));
q->data=a ;
//这里要加一句
p->data = q->data; //如果不加这句最后输出 head->0->1->2->3->4; 而不是正确的 head->1->2->3->4->5;
p->next=q;
p=q;
}
p->next=NULL;
return head;
}
2 - 3错误:
void OutList(LinkList head)
{
LinkList p;
p=head->next; ==>这里应为: p = head; 否则链表第一个值不会输出
printf("head");
while(p->next!=NULL)
{
printf("->%3.0f",p->data); ===>> int 类型输出 printf("->%d", p->data); %f格式不对输出就是 0 了
p=p->next;
}
}
附上在你代码基础上修改这三点
- #include <stdio.h>
- #include <stdlib.h>
- #define N 5
- typedef struct List
- {
- int data;
- struct List *next;
- }Node,*LinkList;
- LinkList InitList_List(void)
- {
- LinkList head;
- head=(Node *)malloc(sizeof(Node));
- if(head==NULL)
- exit(1);
- head->next=NULL;
- return head;
- }
- LinkList CreatList(int *a,int n)
- {
- LinkList head,p,q;
- int i;
- head=p=InitList_List();
- head->data=0;
- for(i=0;i<n;i++)
- {
- q=(Node *)malloc(sizeof(Node));
- q->data=a[i];
- p->data = q->data;
- p->next = q;
- p=q;
- }
- p->next=NULL;
- return head;
- }
- void OutList(LinkList head)
- {
- LinkList p;
- p=head;
- printf("head");
- while(p->next!=NULL)
- {
- printf("->%d",p->data);
- p=p->next;
- }
- }
- int main()
- {
- int a[5]={1,2,3,4,5};
- LinkList head;
- head=CreatList(a,N);
- OutList(head);
- return 0;
- }
复制代码
|
|