在之前的順序表中,我們使用陣列來儲存資料元素,但是這樣的結構有很大的隱患。在一些情況下,我們無法事先確定資料元素的規模。如果資料元素很少的話,陣列很多空間是浪費的, 如果資料元素比較大的話,陣列可能會出現溢位的危險,這比單純的浪費空間要嚴重的多。c語言是不支援動態陣列的,但是我們可以通過指標實現這乙個特性
typedef
char elemtype;
typedef
structsqlist;
/*
初始化順序表
*/status initlist(sqlist *l)
/*
銷毀順序表
*/ status listdestory(sqlist *l)
/*
清空順序表
*/status listclear(sqlist *l)
/*
在順序表中插入元素
*/status
listinsert(sqlist *l, int i, char e)
}if (i < 1 || i > l->length + 1)
for (j = l->length; j >= i; --j)
l->elem[j] = l->elem[j - 1];
l->elem[i - 1] = e;
l->length++;
return ok;
}
/*
在順序表中刪除元素
*/status listdelete(sqlist *l, int i, char *e)
資料結構與演算法 順序表
python中的list和tuple兩種型別採用了順序表的實現技術,具有前面討論的順序表的所有性質。tuple是不可變型別,即不變的順序表,因此不支援改變其內部狀態的任何操作,而其他方面,則與list的性質類似。python標準型別list就是一種元素個數可變的線性表,可以加入和刪除元素,並在各種操...
Python描述 資料結構與演算法 2 順序表
2.1 線性表的概念和性質 2.1.1 線性表是 e ee 中有窮個元素的組成的序列 l e0,e 1,en 1 l e e e l e0 e1 en 1 元素之間的關係 為乙個二元組的集合 r r r 2.1.2 對於非空的線性表或者線性結構的特點 2.1.3 線性表的抽象資料型別adt 2.1....
資料結構與演算法之順序表
include include define maxsize 100 typedef char elemtype typedef struct list sqlist void createlist sqlist l,elemtype a,int n 建立順序表 void initlist sqli...