C/C++线性顺序存储结构

来源:互联网 发布:国际淘宝什么意思 编辑:程序博客网 时间:2024/06/08 08:41
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 20
  4. #define ELEMTP int
  5. #define v (*p)
  6. struct sequnce
  7. {
  8.     ELEMTP elem[MAX];
  9.     int len;
  10. };
  11. main()
  12. {
  13.     struct sequnce *pz;
  14.     int i,y,cord;
  15.     void outlin(struct sequnce s);
  16.     void create(struct sequnce *p);
  17.     void insert(struct sequnce *p,int i,int x);
  18.     void deletes(struct sequnce *p,int i);
  19.     do{
  20.         printf("/n        主菜单        /n");
  21.         printf("     1   建立线性表     /n");
  22.         printf("     2   插入一个元素   /n");
  23.         printf("     3   删除一个元素   /n");
  24.         printf("     4   结束程序运行   /n");
  25.         printf("------------------------------------/n");
  26.         printf(" 请输入您的选择(1, 2, 3, 4) ");
  27.         scanf("%d",&cord);
  28.         switch(cord)
  29.         {
  30.             case 1:
  31.             {
  32.                 pz=(struct sequnce *)malloc(sizeof(struct sequnce));
  33.                 create(pz);
  34.                 outlin(*pz);
  35.             }break;
  36.             case 2:
  37.             {
  38.                 printf("请输入插入的位置 i: ");
  39.                 scanf("%d",&i);
  40.                 printf("请输入插入的数据 y: ");
  41.                 scanf("%d",&y);
  42.                 insert(pz,i,y);
  43.                 outlin(*pz);
  44.             }break;
  45.             case 3:
  46.             {
  47.                 scanf("%d",&i);
  48.                 deletes(pz,i);
  49.                 outlin(*pz);
  50.             }break;
  51.             case 4:
  52.                 exit(0);
  53.         }
  54.     }while(cord<=4);
  55. }
  56. void outlin(struct sequnce s)
  57. {
  58.     int i;
  59.     for(i=1;i<=s.len;i++)
  60.         printf("%2d%6d/n",i,s.elem[i]);
  61. }
  62. void deletes(struct sequnce *p,int i)
  63. {
  64.     int j;
  65.     if(i<1||i>v.len)
  66.         printf("i, 位置不存在 ");
  67.     else
  68.     {
  69.         for(j=i;j<v.len;j++)
  70.             v.elem[j]=v.elem[j+1];
  71.         v.len--;
  72.     }
  73. }
  74. void insert(struct sequnce *p,int i,int x)
  75. {
  76.     int j;
  77.     if(i<1||i>v.len+1)
  78.         printf("i 位置不存在。");
  79.     else
  80.     {
  81.         for(j=v.len;j>=i;j--)
  82.             v.elem[j+1]=v.elem[j];
  83.         v.elem[i]=x;
  84.         v.len++;
  85.     }
  86. }
  87. void create(struct sequnce *p)
  88. {
  89.     int i;
  90.     printf("n= ");
  91.     scanf("%d",&(v.len));
  92.     for(i=1;i<=v.len;i++)
  93.     {
  94.         printf("data= ");
  95.         scanf("%d",&(v.elem[i]));
  96.     }
  97. }

<script type="text/javascript"><!--google_ad_client = "pub-3555979289815451";google_ad_slot = "0437120238";google_ad_width = 468;google_ad_height = 60;//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>