一 Struct实现
动态存储分配
cpp
|
初始化
构造一个空的顺序表L
cpp
void (SqList& L, int maxsize = LIST_INIT_SIZE, int incresize = LISTINCREMENT) |
求表长
返回当前顺序表L元素个数
c
int ListLength_Sq(SqList L) |
查找元素
从第一个元素起,一次和待查找元素e相比较,找到则返回该元素在L中的位序,查找成功;否则返回-1,查找失败。
c
int LocateElem(SqList L, char e) |
插入元素
假设顺序表中有length个元素,在第i(0<=i<=length)个元素前插入新元素e时,需要将第length-1至第i个位置(共length-i个)依次后移,然后插入e到第i个位置,length加1,返回true。
c
bool ListInsert_Sq(SqList& L, int i, char e) |
删除元素
与插入相反,需要删除第i(0<=i<=length)个元素,将第i至第length-1个位置(共length-i个)依次前移,length减1,返回true。
c
bool ListDetect_Sq(SqList& L, int i, char& e) |
取元素
直接返回元素,不需要移动
c
bool GetElem_Sq(SqList L, int i, char& e) |
遍历表
c
void ListTraverse_Sq(SqList L) |
释放表
c
void DestroyList_Sq(SqList& L) |
二 Vector实现
Vector常用操作
- push_back 在数组的最后添加一个数据
- pop_back 去掉数组的最后一个数据
- at 得到编号位置的数据
- begin 得到数组头的指针
- end 得到数组的最后一个单元+1的指针
- front 得到数组头的引用
- back 得到数组的最后一个单元的引用
- max_size 得到vector最大可以是多大
- capacity 当前vector分配的大小
- size 当前使用数据的大小
- resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
- reserve 改变当前vecotr所分配空间的大小
- erase 删除指针指向的数据项
- clear 清空当前的vector
- rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
- rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
- empty 判断vector是否为空
- swap 与另一个vector交换数据
初始化
只需将顺序表长度置零
cpp
void sqlist::init() |
清空
c
void sqlist::clear() |
判断是否为空
c
bool sqlist::is_empty() |
获取数据
c
Seqlist_t sqlist::get_elem(int i) |
查找数据
c
int sqlist::get_locate(Seqlist_t e) |
在尾部添加数据
c
void sqlist::add_back(Seqlist_t e) |
删除最后一个数据
c
void sqlist::delete_back() |
指定位置插入数据
c
void sqlist::insert_elem(Seqlist_t e, int i) |
删除指定位置数据
c
void sqlist::delete_elem(int i) |
遍历数据
c
void sqlist::traverse() |
近期评论