用C++ 实现顺序表的封装: (使用模板)
判表空, 判表满,获取 顺序表已占用长度, 显示表内信息;
头插, 尾插, 头删, 尾删;
特定位置插入数据, 特定数据处插入数据;
特定位置删除数据, 特定数据处删除数据;
查找特定位置数据, 查找特定数据所在位置;
表内数据排序;
去掉表内重复数据, 删除表内所有数据, 删除顺序表;
清屏;
#ifndef _MYSEQLIST_H
#define _MYSEQLIST_H#include <cstdlib>
#include <iostream>
using namespace std;
template<typename Type> //定义模板类
class SeqList
{
public:
SeqList(int sz = DEFAULT_SIZE);
~SeqList();
bool is_empty()const;
bool is_full()const;
int len_list()const;
void show_list()const;
bool push_back(const Type &x);
bool push_front(const Type &x);
bool pop_back();
bool pop_front();
bool insert_pos(int idex, Type &x);
bool insert_value(Type &value, Type &x);
bool delete_pos(int idex);
bool delete_value(Type &value);
Type &find_pos(int idex)const;
int find_value(Type &x)const;
void sort();
void resever();
void clear();
void remove_all();
void destory();
private:
enum{DEFAULT_SIZE = 8};
int capacity; //初始申请顺序表长度
int size; //表内实际存放数据长度
Type *base; //存放数据的数组
};
template<typename Type>
SeqList<Type>::SeqList(int sz) //构造函数
{
capacity = sz > DEFAULT_SIZE ? sz : DEFAULT_SIZE;
base = new Type[capacity];
size = 0;
}
template<typename Type>
SeqList<Type>::~SeqList() //析构函数
{
delete []base;
base = NULL;
capacity = size = 0;
}
template<typename Type>
bool SeqList<Type>::is_empty()const //判顺序表是否为空
{
return size == 0;
}
template<typename Type>
bool SeqList<Type>::is_full()cons //判顺序表是否已满