zoukankan      html  css  js  c++  java
  • DS-2-顺序表的插入,删除与查找的实现

    插入与删除:

    #include <stdio.h>
    #define MaxSize 10    
    typedef struct {
        int data[MaxSize];
        int length;
    }SqList;
    
    bool ListInsert(SqList &L, int i, int e) {
        if (i<1 || i>L.length + 1)        //判断i的范围是否有效
            return false;
        if (L.length >= MaxSize)        //存储空间已满
            return false;
        for (int j = L.length; j >= i; j--)    //元素依次后移
            L.data[j] = L.data[j - 1];
        L.data[i - 1] = e;
        L.length++;
        return true;
    }
    
    bool ListDelete(SqList &L, int i, int &e) {
        if (i<1 || i>L.length)
            return false;
        e = L.data[i - 1];
        for (int j = i; j < L.length; j++)        //后边元素依次前移
            L.data[j - 1] = L.data[j];
        L.length--;
        return true;
    }
    
    int main() {
        SqList L;
        InitList(L);
        //...插入几个元素,代码省略
        ListInsert(L, 3, 3);    //在第三个位置插入值为3的元素
    
        int e = -1;        //用e把删除的元素带回来
        if (ListDelete(L, 3, e))
            printf("已删除第3个元素,删除元素值为=%d
    ", e);
        else
            printf("位序i不合法,删除失败
    ");
        return 0;
    }

    静态定义与动态定义的按位查找都一样:

    ElemType GetElem(SqList L, int i) {
        return L.data[i - 1];    

    按值查找:

    //在顺序表L中查找第一个元素值等于e的元素,并返回其位序 
    int LocateElem(SeqList L,int e){ 
        for(int i=0;i<L.length;i++) 
            if(L.data[i]==e)        //返回位序
                return i+1;            //查找失败
        return 0; 
    }
  • 相关阅读:
    javascript验证QQ号、邮箱和手机号码
    js 引擎 和 html 渲染引擎
    ASP.NET MVC 4 简介
    SqlDateTime overflow / SqlDateTime 溢出
    ASP.NET MVC ViewBag/ViewData/TempData区别
    C#内存分配
    Repeater数据绑定和操作
    Uploadify导致Chrome频繁崩溃Crash
    巧用Ajax的beforeSend 提高用户体验
    ASP.NET MVC
  • 原文地址:https://www.cnblogs.com/swefii/p/13123772.html
Copyright © 2011-2022 走看看