主题:这里是具体的例子。
要求建立一个单链表,其数据类型为
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
要求能输入两个元素并显示输出结果。
下面是我的程序,实在不知道错在什么地方。
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void main()
{ typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE; /*单链表数据类型*/
struct Node; /*单链表节点类型*/
typedef struct Node *PNode; /*单链表节点结构*/
struct Node{
ELEMTYPE info;
PNode link;
};
typedef struct Node *LinkList; /*单链表类型*/
int i;
PNode p,q;
LinkList llist=(LinkList)malloc(sizeof(struct Node)); /*申请表头节点空间*/
if(llist) p=llist;
else printf("out of flow!!"); /*判断是否申请成功*/
for(i=0;i<2;i++){ /*依次向单链表中输入信息*/
printf("Enter xxx's information(id, name, age):\n");
fflush(stdin); /*清除缓存区中的回车符,使gets()函数能正确运行*/
gets(p->info.id); /*gets()函数只以回车符作为停止标志*/
gets(p->info.name);
scanf("%d",&p->info.age);
p->link=(PNode)malloc(sizeof(struct Node));
if(p->link) p=p->link;
else printf("out of flow!!"); }
p->link=NULL;
p=NULL;
printf("ID NAME AGE\n");
printf("----------------------------------\n");
q=llist;
while(q){
printf("%-12s%-15s-%-5d\n",q->info.id,q->info.name,q->info.age);
q=q->link;
}/*依次输出单链表中的信息*/
}
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
要求能输入两个元素并显示输出结果。
下面是我的程序,实在不知道错在什么地方。
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void main()
{ typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE; /*单链表数据类型*/
struct Node; /*单链表节点类型*/
typedef struct Node *PNode; /*单链表节点结构*/
struct Node{
ELEMTYPE info;
PNode link;
};
typedef struct Node *LinkList; /*单链表类型*/
int i;
PNode p,q;
LinkList llist=(LinkList)malloc(sizeof(struct Node)); /*申请表头节点空间*/
if(llist) p=llist;
else printf("out of flow!!"); /*判断是否申请成功*/
for(i=0;i<2;i++){ /*依次向单链表中输入信息*/
printf("Enter xxx's information(id, name, age):\n");
fflush(stdin); /*清除缓存区中的回车符,使gets()函数能正确运行*/
gets(p->info.id); /*gets()函数只以回车符作为停止标志*/
gets(p->info.name);
scanf("%d",&p->info.age);
p->link=(PNode)malloc(sizeof(struct Node));
if(p->link) p=p->link;
else printf("out of flow!!"); }
p->link=NULL;
p=NULL;
printf("ID NAME AGE\n");
printf("----------------------------------\n");
q=llist;
while(q){
printf("%-12s%-15s-%-5d\n",q->info.id,q->info.name,q->info.age);
q=q->link;
}/*依次输出单链表中的信息*/
}