線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表是n個資料元素的有限序列。
在資料元素的非空有限集合中
存在唯一的乙個被稱做「第乙個」的資料元素
存在唯一的乙個被稱做「最後乙個」的資料元素
除第乙個之外,集合中的每個資料元素均只有乙個前驅
除最後乙個之外,集合中每個資料元素均只有乙個後繼
#include
#include
#define size 5
//順序表大小
#define elemtype int
//元素資料型別
using
namespace std;
typedef
struct listlist;
//初始化順序表l
intinitlist
(list &l)
;//在順序l中第i個位置插入newelem元素
intinsertlist
(list &l,
int i,elemtype newelem)
;//刪除順序表l中第i個位置上的元素,並將其值儲存到常量delelem
intdeletelist
(list &l,
int i,elemtype &delelem)
;//修改順序表l中第i個位置元素為newelem元素
intamendlist
(list &l,
int i,elemtype newelem)
;//查詢順序表l中元素e的位置(返回查詢位置)
intselectlist
(list l,elemtype e)
;//遍歷順序表
void
display
(list l)
;int
main()
intinitlist
(list &l)
l.length =0;
l.size = size;
return1;
}//在順序表l中第i個位置插入新元素newelem
intinsertlist
(list &l,
int i,elemtype newelem)
//判斷順序表儲存空間是否滿足
if(l.length >= l.size)
l.elem = newbase;
//新基址
l.size++;}
//為插入變數,元素後移
for(
int p=l.length-
1; p>=i-
1; p--
) l.elem[i-1]
= newelem;
l.length++
;return1;
}//在順序表l中刪除第i個元素,並返回其值e
intdeletelist
(list &l,
int i,elemtype &e)
e = l.elem[i-1]
;for
(int p=i;p) l.length--
;return1;
}//插入位置如果小於1或者大於順序表的長度則返回-1
intamendlist
(list &l,
int i,elemtype newelem)
l.elem[i-1]
= newelem;
return1;
}//在順序表l中查詢e元素的位置,若不存在則返回-1
intselectlist
(list l,elemtype e)
}return-1
;}void
display
(list l)
cout<}
執行結果:
定義初始值:
1 2 3 4 5
在第2個位置插入元素35:
1 35 2 3 4 5
刪除第3個元素的值為:2
1 35 3 4 5
更改第五個位置的元素為33:
1 35 3 4 33
查詢元素3的位置:3
資料結構(C語言)線性表(順序表)
首先線性表的基本函式 1.initlist l 建立乙個空的線性表l 2.destorylist l 如果線性表已經存在的話,則銷毀線性表l 3.listlength l 返回線性表的元素個數 4.getlist l,i e 用e返回線性表第i個元素的值 5.locateelem l,e compa...
C語言資料結構線性表 順序表2
include define ok 1 define error 0 define maxsize 100 定義資料元素型別 typedef structelemtype 定義順序線性表 typedef structsqlist 初始化線性表 void inistlist sqlist pl 建立線...
資料結構 線性表 順序表
豐富了前邊的功能,更加完善。include include define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 using namespace std const int overflow 2 ty...