Suche nach einfach verknüpften Listen

Die Suche nach einfach verknüpften Listen ist in bitweise Suche und nach Wertesuche unterteilt. Tatsächlich hat der Vorgang des Einfügens und Löschens im vorherigen Abschnitt zuerst den Suchvorgang realisiert, aber die Suche nach Einfügen und Löschen besteht darin, das vorherige Element des Zielelements zu finden. Und suchen ist, um das Zielelement zu finden. Bitte beachten Sie den Code für Details:

#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 
}

Ich denke du magst

Origin blog.51cto.com/14049943/2589739
Empfohlen
Rangfolge