zoukankan      html  css  js  c++  java
  • DS-5-单链表的两种查找实现

    按位查找:

    依次循环找到第i-1个结点在上一篇按位插入元素的部分已经写过了,这里也是一样的,只不过把i-1改成了i

    //按位查找,返回第i个元素(带头结点)
    LNode * GetElem(LinkList L, int i) {
        if (i < 0)
            return NULL;
    
        LNode *p;        //p指向当前扫描到的结点
        int j = 0;        //当前p指向的是第几个结点
        p = L;            //L指向头结点,第0个结点
        while (p != NULL && j < i) {    //循环找到第i个结点
            p = p->next;
            j++;
        }
    
        return p;
    }
    //如果i值不合法则返回的值为NULL

    那么现在之前的插入元素的代码查找第i-1个部分即可调用这个查找函数:

    //在第i个位置插入元素e
    bool ListInsert(LinkList &L, int i, char e) {
      
    if (i < 1) return false;
       LNode
    *p = GetElem(L, i-1);

       return InsertNextNode(p,e);
     }

    按值查找:

    //按值查找,找到数据域==e的结点
    LNode *LocateElem(LinkList L, char e) {
        LNode *p = L->next; 
        while (p != NULL && p->data != e)//从第1个结点开始查找数据域为e的结点 
            p=p->next; 
        return  p;   //找到后返回该结点指针,否则返回NULL 
    }

    求表的长度:

    //求表的长度
    int Length(LinkList L) {
        int len = 0;    //统计表长
        LNode *p = L;
        while (p->next != NULL) {
            p = p->next;
            len++;
        }
        return len;
    }
  • 相关阅读:
    msp430入门编程41
    msp430入门编程40
    msp430入门编程37
    msp430入门编程36
    msp430入门编程35
    msp430入门编程34
    msp430入门编程33
    msp430入门编程31
    msp430入门编程32
    msp430入门编程30
  • 原文地址:https://www.cnblogs.com/swefii/p/13148676.html
Copyright © 2011-2022 走看看