码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表的插入,删除与查找的实现

时间:2020-06-14 10:48:53      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:静态   str   存储空间   插入   false   class   判断   动态   顺序表   

插入与删除:

#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\n", e);
    else
        printf("位序i不合法,删除失败\n");
    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; 
}

 

顺序表的插入,删除与查找的实现

标签:静态   str   存储空间   插入   false   class   判断   动态   顺序表   

原文地址:https://www.cnblogs.com/swefii/p/13123772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!