• 顺序表的建立,查找,删除,插入,输出【转】


      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 //来自夏天里的向日葵
      4 #define  maxsize   1111
      5 
      6 typedef struct
      7 {
      8     int a[1111];
      9     int len;
     10 }S;
     11 
     12 S *init()
     13 {
     14     S *l;
     15     l=malloc(sizeof(S));
     16     l->len=-1;
     17     return l;
     18 }
     19 
     20 int insert(S *l,int m,int e)
     21 {
     22     int i;
     23     if(l->len==maxsize)
     24         printf("溢出
    ");
     25     if(m<1 || m>l->len+2)
     26         printf("错误
    ");
     27     for(i=l->len;i>=m-1;i--)
     28         l->a[i+1]=l->a[i];
     29     l->a[m-1]=e;
     30     l->len++;
     31     return 0;
     32 }
     33 
     34 int delet(S *l,int m)
     35 {
     36     int i;
     37     if(m<1 || m>l->len+1)
     38         printf("不存在第i个元素
    ");
     39     for(i=m;i<=l->len;i++)
     40         l->a[i-1]=l->a[i];
     41     l->len--;
     42     return 0;
     43 }
     44 
     45 int locate(S *l,int e)
     46 {
     47     int i=0;
     48     while(i<=l->len && l->a[i]!=e)
     49         i++;
     50     if(i>l->len)
     51         printf("不存在");
     52     else 
     53         printf("是第%d个元素
    ",i+1);
     54     return 0;
     55 }
     56 
     57 int get(S *l,int i)
     58 {
     59     if(i<1 || i>l->len+1)
     60         printf("这个元素不存在
    ");
     61     else 
     62         printf("%d
    ",l->a[i-1]);
     63     return 0;
     64 }
     65 int main()
     66 {  
     67     S *l;
     68     int n,i,m,e;
     69     l=init();
     70     printf("输入一个n和一个n个数的表:
    ");
     71     scanf("%d",&n);      //最先的顺序表中有n个元素
     72     for(i=0;i<n;i++)
     73         scanf("%d",&l->a[i]);            //输入n 个元素
     74     l->len=n-1;
     75     for(i=0;i<=l->len;i++)
     76         printf("%d ",l->a[i]);               //输出
     77     printf("
    ");
     78 /*--------------------------------在m处插入e-------------------------------*/
     79     printf("在m处插入e,输入m和e:
    ");
     80     scanf("%d %d",&m,&e);     
     81     insert(l,m,e);
     82     for(i=0;i<=l->len;i++)
     83         printf("%d ",l->a[i]);     //输出
     84     printf("
    ");
     85 /*---------------------------------删除第m个元素------------------------------*/
     86     printf("删除第m个元素,输入m:
    ");
     87     scanf("%d",&m);
     88     delet(l,m);
     89     for(i=0;i<=l->len;i++)     //输出
     90         printf("%d ",l->a[i]);
     91     printf("
    ");
     92 /*---------------------------------查找e在表中的位置-------------------------------*/
     93     printf("查找e在表中的位置,输入e:
    ");
     94     scanf("%d",&e); 
     95     locate(l,e);
     96 /*----------------------------------取表中第i个元素--------------------------------*/
     97     printf("取表中第i个元素,输入i:
    ");
     98     scanf("%d",&i);
     99     get(l,i);
    100     return 0;
    101 }
  • 相关阅读:
    sql server中将一个字段根据某个字符拆分成多个字段显示
    MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法
    C#中将DataTable转成List
    Dictionary读取键值的快捷方法
    jquery检测浏览器类型
    ubuntu安装网易云音乐
    Ufw使用指南
    MySQL数据库基础命令
    ubuntu搭建ftp后,winSCP连接报错为“列出’/home/ftp’的目录项时出错”
    linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹
  • 原文地址:https://www.cnblogs.com/hanyue-AC/p/3608935.html
Copyright © 2020-2023  润新知