三九宝宝网宝宝教育教学论文

链表的问题 C语言

02月12日 编辑 39baobao.com

#include

#include

#include

#define NULL 0

#define LEN sizeof(struct linkman)

struct linkman //联系人结构体

{

char name[20]; //姓名

long num; //电话号码

char add[100];//地址

struct linkman * next;

};

struct linkman * creat(void) //创建空间(联系人)的函数

{

struct linkman * head;

struct linkman * p1,* p2;

printf("Add linkman's name telephone number and address please!\n");

head = NULL;

do

{

p1=(struct linkman *)malloc(LEN);

memset(p1,0,LEN);/*把目标内存设置为0*/

p1->next = NULL;

if(head == NULL)

head = p1;

else

p2->next = p1;

scanf("%s,%ld,%s,",p1->name,&p1->num,p1->add);

p2=p1;

}while(strcmp(p1->name,"0")!= 0);/*你这种判断会在最后生成一个没用的链表*/

return(head);

}

void print(struct linkman * head) //输出结果的函数

{

struct linkman *p;

printf("**->address book<-**\n");

p=head;

if(head!=NULL)

while(p->next !=NULL)

{

printf("%s,%ld,%s\n",p->name,p->num,p->add);

p=p->next;

}

}

void main()

{

linkman *head;

head = creat();/*creat是返回链表指针*/

print(head);/*传递指针*/

}

推荐阅读
图文推荐