一:线性表的顺序存储结构:
#include <iostream> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ #define MAXSIZE 100 typedef int DataType; //DataType代替int类型. class SequenList { public: void Initiate(); //初始化线性表 int Length(); //查看线性表的长度. int Insert(DataType x,int i); int Deleted(int i); //删除i号元素,注意i表示的是第几个元素,而不是数组中的下标. DataType Locate(DataType x); DataType Get(int i); void show(); private: DataType data[MAXSIZE]; int len; //用于记录线性表的长度. }; void SequenList::Initiate() { len = 0; //私有成员只有在类内部可以使用(除了友元类,友元函数) } int SequenList::Insert(DataType x,int i) { int j; if(i>=MAXSIZE) { cout<<"overflow"<<endl; //超出线性表的空间。 return 0; } else if((i<1)||(i>len+1)) { cout<<"插入位置不符合"<<endl; return 0; } else { for(j = len;j>=i;j--) data[j] = data[j-1]; //把最后一项数据向后移动一位. data[i-1] = x; //插入元素 len++; cout<<"插入成功"<<endl; return 1; } } int SequenList::Deleted(int i) { int j; //j作为一个媒介,可以以冒泡排序来理解. if((i<1)||(i>len)) //i不能小于1是由i代表的不是下标所决定. { cout<<"删除位置不合法"<<endl; } else { for(j=i;j<len;j++) data[j-1] = data[j]; len--; //len永远指向最后一个元素. return 1; } } DataType SequenList::Locate(DataType x) //按值查找数据元素的位置. { int j = 0; while((j<len)&&(data[j]!=x)) j++; if(j<len) return j+1; else return 0; } DataType SequenList::Get(int i) //读取i号元素. { if((i<1)||(i>len)) { cout<<"不存在该元素"<<endl; return 0; //这里的0代表NULL,这里不可以使用NULL,不然会有警告,这是因为char和int类型不同, } else return data[i-1]; } int SequenList::Length() //获取表的长度. { return len; } void SequenList::show() { int *p; p = &this->data[0]; for(int i=0;i<this->len;i++) cout<<*p++; cout<<endl; } int main(int argc, char** argv) { SequenList L; L.Initiate(); for(int i;i<10;i++) //插入值 { L.Insert(i,i); } L.show(); //查询插入的值 int y = L.Length(); //获取其长度; cout<<y<<endl; L.Deleted(4); //删除下标为3的元素, L.show(); //查询 y = L.Length(); cout<<y<<endl; return 0; }
//输出:
插入位置不符合
插入成功
插入成功
插入成功
插入成功
插入成功
插入成功
插入成功
插入成功
插入成功
123456789
9
12356789
8
--------------------------------
Process exited after 0.09883 seconds with return value 0
请按任意键继续.
原文:https://www.cnblogs.com/1314bjwg/p/12465395.html