链表的遍历(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、付费专栏及课程。

余额充值