主题:各位帮帮忙,我的程序为什么可以运行但却不显示结果。。
要求建立一个单链表,其数据类型为
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
该链表能输入两个元素并显示输出结果。
#include <stdio.h>
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
typedef ELEMTYPE *PELEMTYPE; /*单链表数据类型*/
struct Node; /*单链表节点类型*/
typedef struct Node *PNode; /*单链表节点结构*/
struct Node{
ELEMTYPE *info;
PNode link;
};
typedef struct Node *LinkList; /*单链表类型*/
/*创建带头节点的空链表&申请一个节点空间*/
LinkList creatNullList_link(void){
LinkList llist=(LinkList)malloc(sizeof(struct Node)); /*申请表头节点空间*/
if(llist) llist->link=NULL;
else printf("Out of flow!\n");/*创建失败*/
return(llist);
}
/*为ELEMTYPE类型的变量申请空间*/
PELEMTYPE creatELEM_elem(void){
PELEMTYPE element=(PELEMTYPE)malloc(sizeof(ELEMTYPE));
if(element) return(element);
else printf("Out of flow!\n");
return(NULL);
}
/*释放链表空间*/
void deleteList_link(LinkList llist){
PNode p,q;
p=llist;
while(p){
q=p->link;
free(p);
p=q;
}
}
void main(){
int i;
LinkList llist;
PNode p,q;
llist=creatNullList_link(); /*创建带头节点的空链表*/
p=llist->link;
for(i=0;i<2;i++){
p=creatNullList_link();/*申请一个节点空间*/
p->info=creatELEM_elem();/*为ELEMTYPE类型的变量申请空间*/
printf("Enter xxx's information(id, name, age):\n");
fflush(stdin);
printf("id:\n");
gets(p->info->id);
printf("name:\n");
gets(p->info->name);
printf("age:\n");
scanf("%d",&p->info->age);
p=p->link;
}
printf("ID NAME AGE\n");
printf("----------------------------------\n");
q=llist->link;
while(q){
printf("\n%-12s%-15s-%-5d\n",q->info->id,q->info->name,q->info->age);
q=q->link;
}
deleteList_link(llist); /*释放链表空间*/
}
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
该链表能输入两个元素并显示输出结果。
#include <stdio.h>
typedef struct{
char *id;
char *name;
int age;
}ELEMTYPE;
typedef ELEMTYPE *PELEMTYPE; /*单链表数据类型*/
struct Node; /*单链表节点类型*/
typedef struct Node *PNode; /*单链表节点结构*/
struct Node{
ELEMTYPE *info;
PNode link;
};
typedef struct Node *LinkList; /*单链表类型*/
/*创建带头节点的空链表&申请一个节点空间*/
LinkList creatNullList_link(void){
LinkList llist=(LinkList)malloc(sizeof(struct Node)); /*申请表头节点空间*/
if(llist) llist->link=NULL;
else printf("Out of flow!\n");/*创建失败*/
return(llist);
}
/*为ELEMTYPE类型的变量申请空间*/
PELEMTYPE creatELEM_elem(void){
PELEMTYPE element=(PELEMTYPE)malloc(sizeof(ELEMTYPE));
if(element) return(element);
else printf("Out of flow!\n");
return(NULL);
}
/*释放链表空间*/
void deleteList_link(LinkList llist){
PNode p,q;
p=llist;
while(p){
q=p->link;
free(p);
p=q;
}
}
void main(){
int i;
LinkList llist;
PNode p,q;
llist=creatNullList_link(); /*创建带头节点的空链表*/
p=llist->link;
for(i=0;i<2;i++){
p=creatNullList_link();/*申请一个节点空间*/
p->info=creatELEM_elem();/*为ELEMTYPE类型的变量申请空间*/
printf("Enter xxx's information(id, name, age):\n");
fflush(stdin);
printf("id:\n");
gets(p->info->id);
printf("name:\n");
gets(p->info->name);
printf("age:\n");
scanf("%d",&p->info->age);
p=p->link;
}
printf("ID NAME AGE\n");
printf("----------------------------------\n");
q=llist->link;
while(q){
printf("\n%-12s%-15s-%-5d\n",q->info->id,q->info->name,q->info->age);
q=q->link;
}
deleteList_link(llist); /*释放链表空间*/
}