链表的遍历(1)

 

链表的遍历
/*------------------------------------*/
#include
"stdio.h"
#include
"stdlib.h"

struct llist
{
int num;
char name[10];
struct llist *next;
};
typedef
struct llist node;
typedef node
*llink;



/*-----------------链表的创建----------------*/

llink createllist()
{
llink head;
llink ptr,ptr1;
int i;

/*创建第一个结点*/

head
=(llink)malloc(sizeof(node));
if(!head)
return NULL;
printf(
"输入六项邮寄数据:\n");
printf(
"请输入编号 ==> ");
scanf(
"%s",head->num);
printf(
"请输入编号(%d)的姓名 ==> ",head->num);
scanf(
"%s",head->name);
head
->next=NULL;
ptr
=head;
for( i=1; i<6; i++)
{
ptr1
=(llink)malloc(sizeof(node));
if(!ptr1)
return NULL;
printf(
"请输入编号 ==>", ptr1->num);
scanf(
"%s",ptr1->name);
ptr
->next=NULL;
ptr
->next=ptr1;
ptr
=ptr->next;


}
return head;

}

/*--------------链表的结点遍历----------------*/

llink findnode(llink head,
int num)
{
llink ptr;
ptr
=head;
while(ptr!=NULL)
{
if(ptr->num==num)
return ptr;
ptr
=ptr->next;

}
return ptr;

}

/*----------------------输出查找邮寄姓名-------------------*/


int main()
{
llink head;
llink ptr;
int num;


head
=createllist();
if(!head)
{
printf(
"内存分配失败! \n");
exit(
1);
}
while(1)
{
printf(
"请输入要寻找的邮寄编号 ==> ");
scanf(
"%d",&num);
if(num!=0)
{
ptr
=findnode(head,num);
if(!ptr)
printf(
"没有找到\n");
else
printf(
" 姓名: %s\n",ptr->name);
}
else
exit(
1);
}

}

 

转载于:https://www.cnblogs.com/FCWORLD/archive/2010/11/18/1881171.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值