今天写的顺序表

  1 #include<stdio.h>
  2 #define Maxsize 10
  3 typedef int ElemType;
  4 typedef struct stu {
  5     int length;
  6     ElemType data[Maxsize];
  7 }SqList;
  8 //初始化线性表,将顺序表L的length项置0。
  9 void InitList(SqList &L) {
 10     L.length = 0;
 11 }
 12 //输出顺序表中所有元素
 13 void DisElem(SqList &L) {
 14      int m = 0;
 15     for (int i=0;i<L.length;i++) {
 16          
 17          printf("%d  ", L.data[i]);
 18          m++;
 19          if (m % 5 == 0) {
 20              printf("
");
 21          }
 22      }
 23  }
 24 //销毁线性表(函数不包括任何语句)。
 25 void DestroyList(SqList L) {
 26     //顺序表L的内存空间由系统自动分配
 27     //在不再需要顺序表L时由系统自动释放空间
 28 }
 29 //获得第i个位置的值
 30  int GetElem(SqList L) {
 31      int i;
 32     printf("请输入你想查的位置
");
 33     scanf("%d",&i);  
 34     if (L.length < 0 || i<1 || i>L.length)
 35     {
 36         return 0;
 37     }
 38     int e; 
 39     e = L.data[i - 1];
 40     return printf("该数为%d
",e);
 41 }
 42 //在顺序表中将元素插入位置为i的地方。
 43  int ListInsert(SqList &L/*e为要插入的值*/) {
 44      //如果顺序线性表满了
 45     int i,n;
 46     printf("请输入你想插入的位置
");
 47     scanf("%d",&i);  
 48     printf("请输入你想插入的值
");
 49     scanf("%d",&n);  
 50      if (L.length == Maxsize) {
 51          return 0;
 52      }
 53      //当i不在范围内
 54      if (i<1 || i>L.length + 1) {
 55          return 0;
 56      }
 57      //若插入数据不在表尾
 58      if (i <= L.length ) {
 59          //数据后移
 60          for (int k = L.length-1; k >= i-1; k--) {
 61              L.data[k + 1] = L.data[k];
 62          }
 63      }
 64      L.data[i - 1] = n;
 65      L.length++;
 66 
 67  }
 68 //按值查找
 69  int Locate(SqList L, ElemType e /*e为要查找的值*/) {
 70      int i = 0;
 71      //查找范围是0~L.length-1
 72      while (i < L.length || L.data[i] != e) {
 73          i++;
 74          if (i >= L.length) {
 75              return 0;
 76          }
 77          else {
 78              return printf("该值在第%d个元素上
", i);
 79          }
 80      }
 81  }
 82 //删除位置为i的元素
 83  int DleElem(SqList &L) {
 84      int i;
 85       printf("请输入你要删除的位置
");
 86      scanf("%d",&i); 
 87      if (i<1 || i>L.length) {
 88          return printf("删除失败
你要删除的数不在范围内
");
 89      }
 90      for (int k = i; k < L.length; k++) { 
 91      
 92          L.data[k-1] = L.data[k];
 93      }
 94      L.length--;
 95      return printf("     删除成功
");
 96  }
 97 //输入数据
 98  void InputElem(SqList &L) {
 99      int h;
100      printf("请输入你想输入的长度
"); 
101      scanf("%d",&h);
102      L.length = h;
103      for (int i = 0; i < L.length; i++) {
104          printf("请输入第%d个数
",i+1);
105          scanf("%d",&L.data[i]);
106      }
107      printf("输入成功
");
108  }
109 //更改第i个位置的数据
110 int changeElem(SqList &L){
111     int i,m;
112     printf("请输入你想更改的数的位置
");
113     scanf("%d",&i);
114     if(i<1||i>L.length){
115         return printf("你输入的位置不在范围内");
116     }
117     printf("请输入你想改成的数
");
118     scanf("%d",&m);
119     L.data[i-1]=m;
120     
121     
122 } 
123 //主函数
124 int main() {
125     SqList L;
126     InitList(L);//初始化 
127     while(true){
128   printf("|||||||||||||||||||||||||||||||||||||||||||||||
");
129   printf("||  1:输入顺序表                            ||
");
130   printf("||  2:从指定位置删除一个数                  ||
");
131   printf("||  3:查询指定位置的数                      ||
");
132   printf("||  4:将元素插入指定位置                    ||
");
133   printf("||  5:改变某位置元素                        ||
");
134   printf("||  6:打印顺序表                            ||
");
135   printf("||  (输入-1退出系统)                         ||
");
136   printf("|||||||||||||||||||||||||||||||||||||||||||||||
");
137         int n;
138         printf("请输入操作序号:
");
139         scanf("%d",&n);
140         switch(n){
141             case 1 :
142                 InputElem(L);
143                 break;
144             case 2 :
145                 DleElem(L);    
146                 break;
147             case 3 :
148                 GetElem(L);
149                 break;     
150             case 4 :
151                 ListInsert(L);
152                 break;
153             case 5 :
154                 changeElem(L);
155                 break;    
156             case 6 :
157                 DisElem(L);
158                 break;
159             case -1:
160                 return 0;            
161 
162         }
163         

174         
175     } 
176 }

做死我了。

原文地址:https://www.cnblogs.com/longlonglonglong/p/10933173.html