zoukankan      html  css  js  c++  java
  • 数据结构之顺序表

    //没啥说的 挺简单

    //2.2.1

    #include<stdio.h>

    #include<stdlib.h>

    #include<malloc.h>

    #define maxsize 100

    typedef struct

    {  int list[maxsize];  

    int last;  int len;  

    }seqlist;    

    void init(seqlist *l)  

    {  //l=(seqlist *)malloc(sizeif(seqlist) 动态内存分配 写了这句后  last ,len自动加一     

    l->len=0; l->last=-1;  }      

     void creat(seqlist *l,int n) /*创建顺序表 */

    {

    int i;

    int a[100];

    for(i=0;i<n;i++)

    { l->list[i]=i;

    l->len++;

    }

    }

     void empty(seqlist *l)

     {   if(l->len==0)  

     printf("表非空 ");  

     else   

    printf("表为空 ");  }  

    int length(seqlist *l)  

    {   printf("length:%d",l->len);  

     return l->len;;  }    

    int getelem(seqlist *l,int i,int data)  

    {   if(l->len<i||i<1)  

    { printf("位置不合法");   

    return -1;  

    }   

    else  

    {  data=l->list[i-1];

      printf("第i位序号上的数字是%d",data);   

    return 1;}    

     }  

     int locate(seqlist *l,int data)  

    {  int i=0;    

    for(i=0;i<l->len;i++)    

    if(data==l->list[i])    

    printf("已找到data对应的序号%d",i);  

    return 1;    

    printf("未找到序号");  

    return 0;  }

     int insert(seqlist *l,int x,int i)

     {   int j;  

     if(l->len==maxsize)  

     {   printf("表已满");  

     return -1;  

    }  

    if(i>l->len||i<1)//

    {    printf("位置不合法");    

         return -1;  

    }  

    for(j=l->len-1;j>=i-1;j--)

     {

      l->list[j+1]=l->list[j];

     }

     l->list[i-1]=x;

     l->last++;

     l->len++;  return 1;

     }

     int delet(seqlist *l,int i)  

    {   int j;   

    if(l->len==0)  

     { printf("表已空");      

    return 0;  

    }  

    else if(i<1||i>l->len)  

    {    printf("序号位置不对");   

    return -1;  

    }

     else  

    {      for(j=i;j<l->len+1;j++)   

    { l->list[j-1]=l->list[j];/////////    

    }     l->len--;    

    return 1;  }  }

    int main()/*[Error] expected initializer before 'seqlist'   错误类型是指seqlist前面有错误*/

    {  int i,x;   

    int a[100];

     seqlist *l;  

    init(l);

     creat(l,5);  

    printf(" ");  

     empty(l);  

     printf("依次输出表的值:");

     printf(" ");  

    for(i=0;i<l->len;i++)

     { printf("%d ",l->list[i]);

     }  

    printf(" ");  

    locate(l,3);

     printf(" ");

     getelem(l,3,x);

     printf(" ");

     length(l);

     printf(" ");        

    delet(l,2);    

    for(i=0;i<l->len;i++)

     { printf("%d ",l->list[i]);

     }

    return 0;

    }

  • 相关阅读:
    2019年10月31日 万能异常
    2019年10月29日 异常处理
    2019年10月26日 复习
    爬虫时如何使用代理服务器
    爬虫时url中http和https的区别
    博客园如何自定义博客皮肤和主题
    Python发送QQ邮件
    Python中的XML
    持久化-pickle和shelve
    open()函数提示找不到file的解决办法
  • 原文地址:https://www.cnblogs.com/mykonons/p/5847817.html
Copyright © 2011-2022 走看看