1 #include <iostream>
  2 
  3 using namespace std;
  4 
  5 #define maxSize 20
  6 typedef struct
  7 {
  8     int data[maxSize];
  9     int length;
 10 }Sqlist;
 11 
 12 void InitList(Sqlist &L)
 13 {//初始化
 14     L.length=0;
 15 }
 16 
 17 int GetElem(Sqlist L,int p,int &e)
 18 {//查找指定位置的元素
 19     if(p<1||p>L.length)
 20         return 0;
 21     e=L.data[p];
 22     return 1;
 23 }
 24 
 25 int LocateElem(Sqlist L,int e)
 26 {
 27     int i;
 28     for(i=1;i<=L.length;++i)
 29         if(e==L.data[i])
 30         return i;
 31     return 0;
 32 }
 33 
 34 int Insert(Sqlist &L,int p,int e)
 35 {
 36     int i;
 37     if(p<1||p>L.length+1||L.length==maxSize-1)
 38         return 0;
 39     for(i=L.length;i>=p;--i)
 40         L.data[i+1]=L.data[i];
 41     L.data[p]=e;
 42     ++(L.length);
 43     return 1;
 44 }
 45 
 46 int Delete(Sqlist &L,int p,int &e)
 47 {
 48     int i;
 49     if(p<1||p>L.length)
 50         return 0;
 51     e=L.data[p];
 52     for(i=p;i<L.length;++i)
 53         L.data[i]=L.data[i+1];
 54     --(L.length);
 55     return 1;
 56 }
 57 
 58 void Print(Sqlist L)
 59 {
 60     if(L.length<1)
 61         cout<<"顺序表中没有元素!"<<endl;
 62     else
 63     {
 64         for(int i=1;i<=L.length;++i)
 65             cout<<"  "<<i<<"  ";
 66     }
 67     return;
 68 }
 69 
 70 /*
 71 int LocateElem(Sqlist L,int x)
 72 {//返回第一个比x大的元素的位置
 73     int i;
 74     for(i=1;i<=L.length;++i)
 75         if(x<L.data[i])
 76         {
 77             return i;
 78         }
 79     return i;//失败则返回指示表尾
 80 }*/
 81 
 82 //顺序表的相关操作
 83 int main()
 84 {
 85     int e,p;
 86     int x=7;
 87     Sqlist L;
 88     InitList(L);
 89     for(int i=1;i<10;++i)
 90         Insert(L,i,i);
 91     Print(L);
 92     cout<<"\n-----------------------------"<<endl;
 93     Delete(L,4,e);
 94     cout<<"\n要删除的第4个位置元素为:"<<e<<endl;
 95     Print(L);
 96     cout<<"\n-----------------------------"<<endl;
 97     p=LocateElem(L,x);
 98     cout<<"\n元素7的位置为:"<<p<<endl;
 99     cout<<"\n-----------------------------"<<endl;
100 
101     GetElem(L,3,e);
102     cout<<"\n第3个位置的元素为:"<<e<<endl;
103     cout<<"\n-----------------------------"<<endl;
104     return 0;
105 }

 

posted on 2015-12-29 11:15  Xbert  阅读(141)  评论(0编辑  收藏  举报