#include <stdio.h> #define NULL 0 #define LEN sizeof(struct student) struct student { int num; struct student *next; }; struct student * input(struct student *head) { struct student *p1,*p2,*p; p1=p2=(struct student*)malloc(LEN); scanf("%d",&p1->num); head=NULL; while(p1->num>0) { if(head==NULL) head=p1; else p2->next=p1; p2=p1; p1=(struct student*)malloc(LEN); scanf("%d",&p1->num); } p2->next=NULL; if(head!=NULL) p=head; do {printf("%d\n",p->num); p=p->next; }while(p!=NULL); return head ; }
seek(struct student *head) /*查找函数*/ { struct student *p; int k; printf("please input the seeking num:\n"); scanf("%d",&k); if(head!=NULL) p=head; do { if(p->num==k) printf("the num is %d\n",*p); else if(p==NULL) printf("don't exist:\n"); p=p->next; }while(p!=NULL); } main() { struct student *head=NULL; head=input(head); seek(head); getch(); } 这个链表在查询时 如果输入的数不存在就会 出错, 请问怎么改才正确呢 ?
[此贴子已经被作者于2005-9-27 17:38:09编辑过]