数据结构的几种程序总结 C++

顺序表:

#include #include #define N 10

using namespace std;

class SeqList {

public: SeqList(int Size) {MaxSize=Size;last=0;data=0;listsize=0;}

SeqList(int* array,int size); //重载构造函数,用一个数组初始化顺序表 ~SeqList() //析构函数 {

delete[] data; }

int length() const; //计算表长度

int find(int value) const; //查找value在表中位置

bool insert(int value,int i); //插入value在表中第i个位置处 bool remove(int value); //删除value

bool isEmpty(); //判断顺序表是否为空 bool isFull(); //判断顺序表是否已满 int get(int i); //取第i个元素的值 private:

int *data; //顺序表的存放数组,保存值 int MaxSize; //顺序表最大可容纳项数

int last; //顺序表当前已存表项的最后位置 int listsize; };

SeqList::SeqList(int* array,int size) {

listsize=size;

data=new int[MaxSize]; for(int i=0;i

int SeqList::length() const {

return last+1; }

int SeqList::find(int value) const {

int i=0;

while(i<=last&&data[i]!=value) i++; if(i>last) return -1; else

return i+1; }

bool SeqList::insert(int value,int i) {

if(i<0||i>last+1||last==MaxSize-1) //顺序表已满或i值不合条件 return false; else {

last++; //顺序表长度加1 for(int j=last;j>i;j--) //元素依次后移 data[j]=data[j-1]; data[i]=value;

for (i=0;i

bool SeqList::remove(int value) {

int i=find(value); if(i>=0) {

last--; //顺序表长度减1 for(int j=i-1;j<=last;j++) //依次前移

data[j]=data[j+1]; for (i=0;i

return false; }

int SeqList::get(int i) {

if(i<0||i>last) return NULL; else

return data[i]; }

void main()

{int c,d,e,f,g,a[N]; SeqList(100); for (int i=0;i

cout<<\表长度为:\for( i=0;i

cout<<\cout<

cout<<\查找value在表中位置***************\ cout<<\请输入要查找的值:\cin>>c;

d=sql.find(c);

if(d==-1) cout<<\输入有误!\ else cout<<\您所查找的值在第\位\cout<

cout<<\对应位置插入值***************\cout<<\插入\

cout<<\请输入要插入的值:\cin>>e;

cout<<\请输入要插入的位置:\cin>>f;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4