• 今天写的顺序表


      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 }

    做死我了。

  • 相关阅读:
    Microsoft .NET Framework v4.0 正确安装方法
    彻底解决C#实现DataTable导出EXCEL表格
    利用log4net记录操作日志
    [转]驱动程序开发—编译正传(5)
    [转]驱动程序开发-概述(1)
    论富客户端程序的webservice实现
    在Vista中编程控制防火墙设定(C#)
    [转]驱动程序开发—编译前传(4)
    C#系统较时
    [转]驱动程序开发—工具篇(2)
  • 原文地址:https://www.cnblogs.com/longlonglonglong/p/10933173.html
Copyright © 2020-2023  润新知