zoukankan      html  css  js  c++  java
  • 【数据结构】顺序线性表的几种常用方法

      ①:在线性表中插入数据

    int insertlist (seqlist *l, int i, int x)    //在线性表中插入数据
    {
        int k;
    
        if(i < 1 || i > l->last + 1)
        {
            printf("插入的位置不合法");
            return(ERROR);
        }
    
        if(l->last >= maxsize-1)
        {
            printf("线性表已经存满");
        }
    
        for(k = l->last; k >= i - 1;k--)
        {
            l->elem[k + 1] = l->elem[k];
        }
        l->elem[i-1] = x;
        l->last++;        //不要忘记把last加一
        return(OK);
    }

      ②:删除线性表中的元素:

    int deletelist(seqlist *l, int i)        //删除元素
    {
        int k;
        if(i < 1 || i > l->last + 1)
        {
            printf("删除位置不合法");
            return(ERROR);
        }
        
        for(k = i;k < l->last;k++)
        {
            l->elem[k - 1] = l->elem[k];
        }
        l->last--;
        return(OK);
    }

      ③:查找线性表元素:

    int locate(seqlist *l, int x)        //查找元素
    {
        int i;
        int k;
        for(i = 0;i < l->last;i++)
        {
            if(l->elem[i] == x)
            {
                k = i;
            }
            else
            {
                k = 0;
            }
        }
        return k;
    }

    所有代码:

    View Code
    #include <stdio.h>
    #include <stdlib.h>
    
    #define maxsize 1024
    #define OK 1
    #define ERROR 0
    
    typedef struct
    {
            int elem[maxsize];
            int last;        
    }seqlist; 
    
    int main()
    {
        int len,i,j; 
        int position,value;
        int delpos;
        int locval,loci;
        seqlist *la;
        la=(seqlist *)malloc(sizeof(seqlist));    //分配空间
    
        printf("请输入字符串的长度:");
        scanf("%d",&len);
        la->last = len;    //设置线性表的长度
    
        printf("请依次输入数:");
        for(i=0;i<la->last;i++)
        {
            scanf("%d",&la->elem[i]);    //设置值 不要忘记&符号
        }
    
        printf("输入的数字如下:");    
        for(j=0;j<la->last;j++)            //输出数据
        {
            printf("%d \n",la->elem[j]);
        }
    
        printf("请输入要插入元素的位置:");
        scanf("%d",&position);
    
        printf("请输入要插入元素的值:");
        scanf("%d",&value);
    
        insertlist(la,position,value);
    
        printf("添加后的线性表如下:");
        for(j=0;j<la->last;j++)            //输出数据
        {
            printf("%d \n",la->elem[j]);
        }
    
        printf("请输入删除元素的位置:");
        scanf("%d",&delpos);
        deletelist(la,delpos);
    
        printf("删除后的线性表如下:");
        for(j=0;j<la->last;j++)            //输出数据
        {
            printf("%d \n",la->elem[j]);
        }
    
        printf("输入要查找的元素:");
        scanf("%d",&locval);
        loci = locate(la,locval);
        printf("元素的位置是%d",locval);
    }
    
    int insertlist (seqlist *l, int i, int x)    //在线性表中插入数据
    {
        int k;
    
        if(i < 1 || i > l->last + 1)
        {
            printf("插入的位置不合法");
            return(ERROR);
        }
    
        if(l->last >= maxsize-1)
        {
            printf("线性表已经存满");
        }
    
        for(k = l->last; k >= i - 1;k--)
        {
            l->elem[k + 1] = l->elem[k];
        }
        l->elem[i-1] = x;
        l->last++;        //不要忘记把last加一
        return(OK);
    }
    
    int deletelist(seqlist *l, int i)        //删除元素
    {
        int k;
        if(i < 1 || i > l->last + 1)
        {
            printf("删除位置不合法");
            return(ERROR);
        }
        
        for(k = i;k < l->last;k++)
        {
            l->elem[k - 1] = l->elem[k];
        }
        l->last--;
        return(OK);
    }
    
    int locate(seqlist *l, int x)        //查找元素
    {
        int i;
        int k;
        for(i = 0;i < l->last;i++)
        {
            if(l->elem[i] == x)
            {
                k = i;
            }
            else
            {
                k = 0;
            }
        }
        return k;
    }
  • 相关阅读:
    2020中国最好大学排名.py(亲测有效)
    手机号码归属地的自动查询.py(亲测有效)
    网络图片的爬取和存储.py(亲测有效)
    百度360搜索关键词提交.py(亲测有效)
    亚马逊商品页面爬取(使用headers字段).py(亲测有效)
    淘宝商品页面的爬取.py(亲测有效)
    爬取网页的通用代码框架.py(亲测有效)
    匿名函数function前面的! ~等符号作用小解
    ng之自定义指令
    用nodejs搭建一个简单的服务监听程序
  • 原文地址:https://www.cnblogs.com/ngnetboy/p/2690178.html
Copyright © 2011-2022 走看看