順序表的操作——刪除


#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>

#include <cstdlib>
#define MaxSize 10
using namespace std;

typedef struct {
int data[MaxSize];
int length;
} SqList;
//順序表的初始化
void InitList(SqList &L) {
for (int i = 0; i < MaxSize; i++)

L.data[i] = 0; //將所有數據元素設置為默認初始值
L.length = 0; //初始值的長度為0
}
//順序表的插入
bool ListInsert(SqList &L, int i, int e) {
if (i < 1 || i > L.length + 1) {
return false; //判斷i的范圍是否有效
}
if (L.length > MaxSize) {
return false; //當前存儲空間已滿,不能插入
}
for (int j = L.length; j >= i; j--) //將第i個元素后移
L.data[j] = L.data[j - 1]; //
L.data[i - 1] = e; //將第i個元素放入e
L.length++; // length長度加1

return true;
}
//順序表的刪除
int ListDelete(SqList &L, int i, int &e) {
if (i < 1 || i > L.length) return false;//判斷i的范圍是否有效

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, 1, 0);
ListInsert(L, 2, 1);
ListInsert(L, 3, 2);
ListInsert(L, 4, 3);
ListInsert(L, 5, 4);


int e = -1,i = 6;
if (ListDelete(L, i, e)) {
printf("已刪除第%d個元素,元素為 %d\n",i, e);
} else
printf("位序不合理,現在表總長%d,刪除失敗\n",L.length);

return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM