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

  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"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值