【发布时间】:2016-04-18 20:50:13
【问题描述】:
此代码应该构建一个包含从 0 到 20 的整数的简单链表。当我为程序中的每个节点实例编译代码时,我不断收到错误消息:unknown type name 'node'。我不确定是否必须定义它们或代码中存在更大的缺陷。
#include<stdio.h>
#include<stdlib.h>
int main() {
int i;
struct node *first=NULL;
for(i=1;i<=20;i++)
first=insertrear(first,i);
dispnodes(first);
sum(first);
return 0;
}
typedef struct node {
int data;
struct node *link;
};
node* getnode(node *temp,int i) {
temp=(node*)malloc(sizeof(node));
temp->data=i;
temp->link=NULL;
return temp;
}
node* insertrear(node *first,int a) {
node *temp=NULL,*i;
temp= getnode(temp,a);
if(first==NULL) {
first=temp;
return first;
}
for(i=first;i->link!=NULL;i=i->link);
i->link=temp;
return first;
}
void dispnodes(node *first) {
int j;
if(first==NULL) {
printf("\nlist empty");
return;
}
node *i;
for(i=first,j=0;i!=NULL;j++,i=i->link)
printf("\nNode #%d contains %d ",j,i->data);
}
void sum(node *first) {
node *i;
int total=0;
for(i=first;i!=NULL;i=i->link)
total+=i->data;
printf("\nThe sum total of all nodes in this list is %d",total);
}
【问题讨论】:
标签: c linked-list nodes