#include <stdio.h>
#include <stdlib.h>
typedef int elemtype;
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*linklist;
void list_head_insert(lnode*&l){
l=(linklist)malloc(sizeof(lnode));
l->next= NULL;
elemtype x;
scanf("%d",&x);
lnode *s;
while(x!=9999){
s=(linklist)malloc(sizeof(lnode));
s->data=x;
s->next=l->next;
l->next=s;
scanf("%d",&x);
}
}
void print_list(linklist l){
l=l->next;
while(l!=NULL){
printf("%3d",l->data);
l=l->next;
}
printf("\n");
}
linklist getelem(linklist l,int searchpos){
int j=0;
if(searchpos<0){
return NULL;
}
while(l&&j<searchpos){
l=l->next;
j++;
}
return l;
}
int main(){
linklist l,search;
list_head_insert(l);
print_list(l);
search=getelem(l,2);
if(getelem(l,2)!=NULL){
printf("succceed in searching by serial number\n");
printf("%d\n",search->data);
}
return 0;
}明天好好练,今天累了
#include <stdio.h>
#include <stdlib.h>
typedef int elemtype;
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*linklist;
void list_head_insert(lnode*&l){
l=(linklist)malloc(sizeof(lnode));
l->next= NULL;
elemtype x;
scanf("%d",&x);
lnode *s;
while(x!=9999){
s=(linklist)malloc(sizeof(lnode));
s->data=x;
s->next=l->next;
l->next=s;
scanf("%d",&x);
}
}
void print_list(linklist l){
l=l->next;
while(l!=NULL){
printf("%3d",l->data);
l=l->next;
}
printf("\n");
}
linklist getelem(linklist l,int searchpos){
int j=0;
if(searchpos<0){
return NULL;
}
while(l&&j<searchpos){
l=l->next;
j++;
}
return l;
}
linklist locatelem(linklist l,elemtype searchval){
while(l){
if(l->data==searchval){
return l;
}
l=l->next;
}
return NULL;
}
int main(){
linklist l,search;
list_head_insert(l);
print_list(l);
search=getelem(l,2);
if(getelem(l,2)!=NULL){
printf("succceed in searching by serial number\n");
printf("%d\n",search->data);
}
search=locatelem(l,6);
if(locatelem(l,2)!=NULL){
printf("succceed in searching by serial number\n");
printf("%d\n",search->data);
}
return 0;
}
总结 按位查找 while(l&&j<searchpos)j++ l=l->next
按位查找 while(l)if(l->data==searchpos)returnl,else l=l->next
按位查找 按值查找
最新推荐文章于 2024-06-15 16:46:40 发布