• 删除线性表中所有值为x的元素


    时间复杂度O(n),空间复杂度O(1)。

    简单的问题两种不同的思路。

    代码:

    #include <stdio.h>
    #define MAX 100
    struct sqlist{
        int data[MAX];
        int length;
    }s;
    void input(sqlist *s) {
        printf("请输入元素个数:");
        scanf("%d",&s -> length);
        printf("请输入%d个元素:",s -> length);
        for(int i = 0;i < s -> length;i ++) {
            scanf("%d",&s -> data[i]);
        }
    }
    void print(sqlist s) {
        printf("%d
    ",s.length);
        for(int i = 0;i < s.length;i ++) {
            printf("%d ",s.data[i]);
        }
        putchar('
    ');
    }
    void del_1(sqlist *s,int x) {//记录不等于x的个数
        int k = 0;
        for(int i = 0;i < s -> length;i ++) {
            if(s -> data[i] != x) s -> data[k ++] = s -> data[i];
        }
        s -> length = k;
    }
    void del_2(sqlist *s,int x) {//记录等于x的个数
        int k = 0;
        for(int i = 0;i < s -> length;i ++) {
            if(s -> data[i] == x) k ++;
            else s -> data[i - k] = s -> data[i];
        }
        s -> length -= k;
    }
    int main() {
        input(&s);
        int x;
        printf("请输入x:");
        scanf("%d",&x);
        del_1(&s,x);
        print(s);
        return 0;
    }
  • 相关阅读:
    MyBatis动态SQL
    Mybatis基础配置
    MyBatis的手动映射与模糊查询
    Struts2框架和SpringMvc框架的区别
    Mybatis和Hibernate框架的区别
    Servlet
    JSP数据交互(二)
    JSP数据交互(一)
    Spark朴素贝叶斯(naiveBayes)
    【安卓开发】Android为什么选择binder
  • 原文地址:https://www.cnblogs.com/8023spz/p/11838327.html
Copyright © 2020-2023  润新知