線性表的順序儲存指的是將線性表中的元素存放在一組連續的儲存單元中,這樣使得在邏輯上是相鄰的,物理儲存上也是相鄰的。採用順序儲存結構的線性表稱為順序表。
順序表反應了線性表中元素的邏輯關係,只要知道第乙個元素的儲存位址就能得到線性表中任何乙個元素的儲存位址。同樣已知任何乙個元素的儲存位址都可以得到其他元素的儲存位址。因此線性表中的任何乙個元素都可以隨機訪問,線性表的順序儲存結構是一種隨機訪問的儲存結構。
標頭檔案
#pragma once
#include #include #define listsize 100
typedef int datatype;
typedef struct seqlist;
//順序表初始化
void initlist(seqlist* l)
//判斷順序表是否為空
int listempty(seqlist l)
//獲取第i個元素,用e接收
int getelem(seqlist l, int i, datatype* e)
//查詢與e相等的元素
int locateelem(seqlist l, datatype e)
return 0;
}//在第i個位置插入新元素e
int insertlist(seqlist* l, int i, datatype e)
}//刪除第i個元素
int deletelist(seqlist* l, int i, datatype* e)
}//返回線性表的長度
int listlength(seqlist l)
//清空線性表
void clearlist(seqlist* l)
測試檔案
#include #include #include "seqlist.h"
//刪除 a在b**現的元素
void delelem(seqlist* a, seqlist* b);
void main()
} for (i = 1,j = 1;j<=6;i=i+2,j++) }
printf("順序表a的元素:\n");
for (i = 1; i <= a.length; i++)
printf("\n");
printf("順序表b的元素:\n");
for (i = 1; i <= b.length; i++)
printf("\n");
printf("將在a**現b的元素刪除後a中的元素:\n");
delelem(&a, &b);
for (i = 1; i <= a.length; i++)
printf("\n"); }
void delelem(seqlist* a, seqlist* b)
}}
線性表的順序表示與實現 順序表
一.順序表的定義 用一組位址連續的儲存單元依次存放線性表的結點,由此得到的線性表簡稱為順序表 sequential list 二.結點ai的儲存位址 假設表中每個結點占用c個儲存單元,其中第乙個單元的儲存位址作為該結點的儲存位址,並設表中開始結點a1的儲存位址 簡稱為基位址 是loc a1 那麼結點...
線性表的順序表示與實現
include include include define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 typedef int status typedef int e...
線性表的順序表示與實現
線性表是有n個元素的非空有限序列 存在惟一的乙個被稱作 第乙個 資料的元素 存在惟一的乙個被稱作 第後乙個 資料的元素 除第乙個與最後乙個之外,其它元素都存在唯一的乙個前驅和唯一的乙個後續 複雜的線性表中的元素可以由多個資料項組成 同乙個線性表中的元素型別必須相同 線性表的順序表,是用一組位址連續的...