diff --git a/链表/带头结点单链表按值查找.c b/链表/带头结点单链表按值查找.c new file mode 100644 index 0000000..cb0a908 --- /dev/null +++ b/链表/带头结点单链表按值查找.c @@ -0,0 +1,73 @@ +#include +#include +#include + +typedef struct LNode{ + int data; + struct LNode *next; +}LNode,*LinkList; + +bool InitList(LinkList *L){ + (*L) = (LNode*)malloc(sizeof(LNode)); + if(*L==NULL){ + return false; + } + (*L)->next = NULL; + return true; +} + +LNode * LocateElem(LinkList L,int e){ + LNode *p = L; + while(p&&p->data!=e){ + p = p->next; + } + return p; +} + +bool InsertList(LinkList *L,int i,int e){ + if(i<1){ + return false; + } + LNode *p; + p = *L; + int j = 0; + while(p&&jnext; + j++; + } + if(!p){ + return false; + } + LNode *s = (LNode*)malloc(sizeof(LNode)); + s->data = e; + s->next = p->next; + p->next = s; + return true; +} +void PrintList(LinkList L){ + LinkList p = L->next; + while(p){ + printf("%d\n",p->data); + p = p->next; + } +} +int main(){ + LinkList L; + InitList(&L); + for(int i = 0;i < 10;i ++){ + InsertList(&L,i+1,i); + } + PrintList(L); + printf("----测试----\n"); + if(LocateElem(L,5)){ + printf("已找到"); + }else{ + printf("未找到"); + } + if(LocateElem(L,100)){ + printf("已找到\n"); + }else{ + printf("未找到\n"); + } + return 0; +}