顺序表《Sqlist》

Sqlist

线性表的实现

步骤:

1.申请空间:使用new申请

2.打印顺序表:循环来打印,循环中i的值小于长度

3.插入元素:长度加1,在插入的之后每个值的下标都+1,也就是向后移动一个位置。判断空间是否满,判断插入元素是否符合。

4.删除元素:长度减一,在删除之后的每个值向前移动一个位置,也就是在删除元素之后都向前移动一个位置。判断空间是否空,判断插入元素是否符合。

 

代码:

 1 #include<iostream>

  2 using namespace std;

  3

  4 template<class Type>

  5 class Sqlist

  6 {

  7 public:

  8     Sqlist()

  9     {

 10         mm = 0;

 11         nn = 0;

 12         return;

 13     }

 14     Sqlist(int );   //申请空间

 15     void prt_Sqlist();  //顺序输出元素和长度

 16     int flag_Sqlist();  //检测顺序表的状态

 17     void insert_Sqlist(int ,Type);  //插入元素

 18     void del_Sqlist(int);   //删除元素

 19 private:

 20     int mm;     //空间存储量

 21     int nn;     //顺序表长度

 22     Type *v;    //顺序表存储首地址

 23 };

 24

 25 //建立顺序表

 26 template<class Type>

 27 Sqlist<Type>::Sqlist(int m)

28 {

 29     mm = m;

 30     v = new Type[mm];

 31     nn = 0;

 32     return ;

 33 }

 34

 35 //顺序输出元素的长度

 36 template<class Type>

 37 void Sqlist<Type>::prt_Sqlist()

 38 {

 39

 40     cout<<"nn="<<nn<<endl;

 41     for(int i=0;i<nn;i++)

 42     cout<<v[i]<<endl;

 43 }

 44

 45 //检测顺序表的状态

 46 template<class Type>

 47 int Sqlist<Type>::flag_Sqlist()

 48 {

 49     if(nn = mm)

 50     return -1;

 51     if(nn == 0)

 52     return 0;

53     return 1;

 54 }

 55

 56 //插入元素

 57 template<class Type>

 58 void Sqlist<Type>::insert_Sqlist(int i,Type b)

 59 {

 60     int k;

 61     if(nn == mm)

 62     cout<<"FULL!"<<endl;

 63     if(i>nn)

 64     i = nn+1;

 65     if(i<nn)

 66     i=1;

 67     for(k==nn;k>=i;k--)

 68     v[k] = v[k-1];

 69     v[i-1] = b;

 70     nn = nn+1;

 71     return ;

 72 }

 73

 74 //删除制定元素

 75

 76 template<class Type>

 77 void Sqlist<Type>::del_Sqlist(int i)

 78 {

 79     int k;

 80     if(nn == 0)

 81     {

 82         cout<<"NULL!"<<endl;

 83     }

 84     if(i>nn || i<1)

 85     {

 86         cout<<"NO have this num"<<endl;

 87     }

 88     for(k=i;k<nn;k++)

 89         v[k-1] = v[k];

 90     nn = nn-1;

 91     return ;

 92

 93 }

                                                                                       

 

Main()

 1 #include"Sqlist.h"

  2

  3 int main()

  4 {

  5     Sqlist<int>s1(100); //容量为100

  6     cout<<"第一次输出顺序表对象S1"<<endl;

  7     s1.prt_Sqlist();

  8     s1.insert_Sqlist(1,2);

  9     s1.insert_Sqlist(2,3);

 10     s1.insert_Sqlist(3,4);

 11     s1.insert_Sqlist(4,5);

 12     cout<<"插入后:"<<endl;

 13     s1.prt_Sqlist();

 14     s1.del_Sqlist(2);

 15     cout<<"删除后:"<<endl;

 16     s1.prt_Sqlist();

17 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值