;初始化及銷毀
template
<
class
t>
sqlist
::sqlist()
template
<
class
t>
sqlist::~
sqlist()
插入元素
//在第i個元素之前插入元素
template
<
class
t>
status sqlist
::listinsert
(int i, t e)
if(length >= listsize)
//容量已滿,申請擴容
//複製操作
p = elem;
elem = newbase;
for(
int i=
0; i
) listsize = maxsize*2;
} t *q =
&(elem[i-1]
);//新插入節點位置,第i個元素對應下標為i-1;
for(p=
(&elem[length-1]
); p>=q; p--
)*q = e;
++length;
return ok;
}
刪除元素
//刪除陣列中第i個元素,並用e返回
template
<
class
t>
status sqlist
::listdelete
(int i, t &e)
p =&(elem[i-1]
);e =
*p; q = elem + length +1;
for(
++p; p<=q; p++
)--length;
return ok;
}
#include
using
namespace std;
const
int ok =1;
const
int error =0;
const
int maxsize =20;
typedef
int status;
template
<
class
t>
class
sqlist
;template
<
class
t>
sqlist
::sqlist()
template
<
class
t>
sqlist::~
sqlist()
//在第i個元素之前插入元素
template
<
class
t>
status sqlist
::listinsert
(int i, t e)
if(length >= listsize)
//容量已滿,申請擴容
//複製操作
p = elem;
elem = newbase;
for(
int i=
0; i
) listsize = maxsize*2;
} t *q =
&(elem[i-1]
);//新插入節點位置,第i個元素對應下標為i-1;
for(p=
(&elem[length-1]
); p>=q; p--
)*q = e;
++length;
return ok;
}//刪除陣列中第i個元素,並用e返回
template
<
class
t>
status sqlist
::listdelete
(int i, t &e)
p =&(elem[i-1]
);e =
*p; q = elem + length +1;
for(
++p; p<=q; p++
)--length;
return ok;
}template
<
class
t>
void sqlist
::display()
cout << endl;
}int
main()
list1.
display()
; list1.
listinsert(10
,10);
list1.
display()
;for
(int i=
0; i<
5; i++
) list1.
display()
;int a =0;
list1.
listdelete(3
, a)
; cout <<
"a = "
<< a <
list1.
display()
;return0;
}
測試結果
順序表實現
順序表是最簡單的資料結構之一。常見的操作就是建表 增刪改查。採用順序儲存結構,也就是陣列,這樣隨機訪問。增刪需要移動大量元素,時間複雜度o n 順序查詢的時間複雜度也是o n 不過誰會那麼傻,通常都先排序一遍,然後二分查詢。很簡單,基本就是嚴蔚敏那本書,可以參照著看。include include ...
實現順序表
順序表是在計算機記憶體中以陣列的形式儲存的線性表,線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素 使得線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素物理儲存的相鄰關係來反映資料元素之間邏輯上的相鄰關係,採用順序儲存結構的線性表通常稱為順序表。pu...
實現順序表
include include define elemtype int define maxsize 10 順序表最大長度 define initsize 5 順序表初始的長度 typedef structsqlist int initlist sqlist l elemtype p l data ...