Búsqueda de lista de un solo enlace

La búsqueda de listas vinculadas individualmente se divide en búsqueda bit a bit y búsqueda de valor. De hecho, el proceso de inserción y eliminación en la sección anterior ha realizado la operación de búsqueda primero, pero la búsqueda de inserción y eliminación es para encontrar el elemento anterior del elemento de destino. Y la búsqueda es encontrar el elemento de destino. Consulte el código para obtener más detalles:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//单链表定义(结构体)
typedef struct LNode{
    int data;//数据域
    struct LNode *next;//指针域 
}LNode,*LinkList; 

//初始化单链表(不带头结点) 
/*
bool InitList(LinkList &L){
    L = NULL;//将单链表初始化为空表 
    return true;
}
*/

//初始化单链表(带头结点)
bool InitList(LinkList &L){
    L = (LNode *)malloc(sizeof(LNode));//分配一个头结点,并且用L指针变量指向这个头结点
    if(L==NULL){
        return false;//内存不足分配失败 
    } 
    L->next = NULL;//头结点之后暂时还没有结点 
    return true;
}

//按位查找(带头节点)
LNode *GetElem(LinkList L,int i){
    if(i<1){
        return NULL;
    }
    LNode *p = (LNode *)malloc(sizeof(LNode));
    int j=0;
    p = L;
    while(p!=NULL&&j<i){
        p = p->next;
        j++;
    }
    return p;
} 

//按值查找(带头节点)
LNode *LocateElem(LinkList L,int e){
    LNode *p = (LNode *)malloc(sizeof(LNode));
    p = L->next;//使指针p指向第一个结点 
    while(p!=NULL && p->data!=e){
        p = p->next;
    }
    return p;//找到返回结点指针,否则返回NULL 
}

Supongo que te gusta

Origin blog.51cto.com/14049943/2589739
Recomendado
Clasificación