考研資料結構-線性表-順序表
靜態分配
程式碼實現
#include <stdio.h>
#include <malloc.h> //新增malloc函式的標頭檔案
//預定義常量和型別
#define LIST_INIT_SIZE 10 //線性表的儲存空間的初始分配量
typedef int ElemType;//取別名 方便改
typedef struct{
ElemType data[LIST_INIT_SIZE]; //用靜態的“陣列”存放資料元素
int length;//順序表的當前長度
}SqList;//順序表的型別定義
//初始化 順序表 靜態分配
void InitList(SqList &L){
for(int i=0;i<LIST_INIT_SIZE;i++)
L.data[i]=0;//將所有資料元素設定預設值
L.length=0;//順序表初始長度
}
//插入 順序表
bool ListInsert(SqList &L,int i,int e){
if(i<1||i>L.length+1) //判斷i的範圍是否有效
return false;
if(L.length>=LIST_INIT_SIZE)//當前儲存空間已滿 不能插入
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++;//長度加1
return true;
}
//刪除 順序表
bool ListDelete(SqList &L,int i,int &e){
if(i<1||i>L.length)//判斷i的範圍是否有效
return false;
e=L.data[i-1];//將被刪除的元素賦值給e
for(int j=i;j<L.length;j++)//將第i個位置後的元素前移
L.data[j-1]=L.data[j];
L.length--;//線性表長度減1
return true;
}
//按位置查詢順序表
ElemType GetElem(SqList L,int i){
return L.data[i-1];
}
//在順序表L中查詢第一個元素值等於e的元素,並返回其位序
int LocateElem(SqList L,ElemType e){
for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;//陣列下標為i的元素等於e,返回其位序i+1
return 0;//退出迴圈,說明查詢失敗
}
int main(int argc, _TCHAR* argv[])
{
//宣告一個順序表
SqList L;
//初始化順序表
InitList(L);
//插入資料
for(int i=1;i<LIST_INIT_SIZE;i++){
ListInsert(L,i,i+1);
}
//按位查詢資料
for(int i=1;i<=L.length;i++){
//GetElem(L,i);//按位查詢操作,獲取表L中第i個元素的值
printf("第%d個為%d\n",i,GetElem(L,i));
}
//查詢到數值8的位置
//也可以用鍵盤輸入獲取我就不寫了
printf("查詢到位置%d",LocateElem(L,8));
//刪除實現
int e=-1;//用變數e把刪除的元素帶回來
if(ListDelete(L, 3, e))
printf("已刪除第3個元素,刪除元素值為%d\n",e);
else
printf("位序不合法,刪除失敗");
//system("pause");//讓控制檯停留
return 0;
}
相關文章
- 資料結構 - 線性表 - 順序表資料結構
- 資料結構與演算法 | 線性表 —— 順序表資料結構演算法
- 線性表之順序儲存結構
- 11 線性表的順序儲存結構
- 資料結構——線性表資料結構
- 資料結構 | 線性表資料結構
- 資料結構-線性表資料結構
- 資料結構—線性表資料結構
- [資料結構] - 線性表資料結構
- 自學 資料結構四月二十二日_線性結構之順序表資料結構
- 自學 資料結構四月二十三日_線性結構之順序表(2)資料結構
- 線性表-順序表C語言實現C語言
- 資料結構-線性表、連結串列資料結構
- python演算法與資料結構-順序表(37)Python演算法資料結構
- 線性表__資料結構筆記資料結構筆記
- 資料結構:線性表-例題資料結構
- 線性表的使用——順序實現
- 【資料結構與演算法學習】線性表(順序表、單連結串列、雙向連結串列、迴圈連結串列)資料結構演算法
- 【資料結構】線性表-單連結串列資料結構
- 資料結構c語言實現順序表基本操作資料結構C語言
- 資料結構筆記——線性表(下)資料結構筆記
- 資料結構筆記——線性表(中)資料結構筆記
- 資料結構——線性表P35.1資料結構
- 順序表有序插入資料
- 具體實現程式碼@資料結構探險——順序表資料結構
- 資料結構練習題(順序表和單連結串列)C++資料結構C++
- 資料結構與演算法 - 線性表資料結構演算法
- 資料結構線性表兩種方式分享資料結構
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 南郵資料結構實驗1.1:順序表的相關操作資料結構
- 基礎資料結構(一)---(最全)定長順序表的實現資料結構
- 資料結構知否知否系列之 — 線性表的順序與鏈式儲存篇(8000 多字長資料結構
- 線性表的順序儲存-順序表,對“突然的自我”的否定,對自我的揚棄
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- 資料結構基礎學習之線性表資料結構
- 資料結構:線性表(Python實現基本操作)資料結構Python
- 資料結構-第一篇:線性表資料結構
- 資料結構與演算法(一):線性表資料結構演算法