• 数据结构考研--线性表例2-2


    //天勤p28例2-2:删除顺序表L中下标为p的元素,成功返回1,否则返回0,并将被删除元素的值赋给e
    //首先要找到p,然后将p后的元素都前移一位,长度-1就可以了
    //先写查函数findElem,找到返回位置,找不到返回-1
    #include "stdio.h"
    #define MAXSIZE 100 
    typedef struct{    
        int data[MAXSIZE];
        int length;
    }List;

    void init(List &Li){
        int size = 20;
        for(int i=0;i<size;i++){
            Li.data[i]=i;
        }
        Li.length = size;
    }

    int findElem(List &Li,int n){    //查找函数。若不用修改结构体内的内容,可以直接传结构体过去(List Li)让它在函数里生成一个一样的(其实最好的做法是无论何时都传(地址)指针。因为节省空间)
        for(int i=0;i<Li.length;i++){
            if (Li.data[i] == n){
                return i;    //找到
            } 
        }
        return -1;    //找不到
    }

    int deleteElem(List &Li,int n,int &e){
        int local = findElem(Li,n);
        if(local == -1){
            e = n;    //赋给e
            return 0;    //找不到,返回0 
        } 
        for(int i=local;i<Li.length-1;i++){
            Li.data[i] = Li.data[i+1];   //元素前移
        }
        Li.length = Li.length - 1;
        return 1;   //成功,返回1
    }
    int main(){
        List L;
        int e;
        int n = 22;
        init(L);
        int d = deleteElem(L,n,e);
        // for(int i=0;i<L.length;i++){  //测试输出
        //     printf("%d ",L.data[i]);
        // }
        printf("%d ",d);
        // printf("%d",e);   //测试输出
        getchar();
        return 0;
    }

    //原序列:0~19
    //删除 n=3 后序列12456~19,返回1
    //删除 n=22 后序列不变,返回0

    //delete是保留字?换了delete就正常了
  • 相关阅读:
    python 登录与注册
    python 深浅拷贝
    列表|字典|集合推导式
    正则表达式——笔记
    Python thread
    allure报告自定义logo和名称
    回归测试用例编写思路
    测试用例规范【如何编写测试用例】
    git与pycharm的使用详解(git+gitlab+pycham)
    接口自动化
  • 原文地址:https://www.cnblogs.com/BreezeFeng/p/13946475.html
Copyright © 2020-2023  润新知