• 吼,数据结构上机课1


    唔,好歹是学到了新东西,不慌。

    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    
    #define M 20
    typedef int ElemType;
    typedef struct S {
        ElemType elem[M];
        int l;
    }S;
    
    int inits(S &L) //初始化
    {L.l=0;    return 1;}
    
    int finds(S &L,int x) //查找
    {
        int i=0;
        while(i<L.l&&L.elem[i]!=x) i++;
        if(i>=L.l) {printf("顺序表中不存在该元素!
    "); return 0;}
        else return i+1;
    }
    
    int inserts(S &L,int i,int x) //插入
    {
        int j;
        if(L.l>=M) {printf("顺序表已满,无法进行插入操作!
    "); return 0;}
        if(i<=0||i>L.l+1) {printf("插入位置不正确!
    "); return 0;}
        for(j=L.l-1;j>=i-1;j--) {L.elem[j+1]=L.elem[j];}
        L.elem[i-1]=x;
        L.l++;
        return 1;
    }
    
    int deletes(S &L,int i) //删除
    {
        int j;
        if(i<1||i>L.l) {printf("删除位置不正确!
    "); return 0;}
        for(j=i;j<L.l;j++) L.elem[j-1]=L.elem[j];
        L.l--;
        return 1;
    }
    
    int prints(S L) //输出
    {
        int i;
        for(i=0;i<L.l;i++) printf("%d",L.elem[i]);
        printf("
    ");
        return 1;
    }
    
    void main()
    {
        S L;
        ElemType e,x;
        int i=1,k,j;
        inits(L);
        printf("初始化
    建立顺序表如下:
    "); //不用自己手动输入
        inserts(L,1,1); inserts(L,2,2);
        inserts(L,3,3); inserts(L,4,4);
        prints(L);
        while(i<=3)
        {
            printf("
            主菜单        
    ");
            printf("    1  查找指定元素    
    ");
            printf("    2  插入元素到指定位置    
    ");
            printf("    3  删除某一指定位置元素    
    ");
            printf("    0  结束程序    
    ");
            printf("--------------------------------------
    ");
            printf("请输入您选择的菜单号<1,2,3,0>:");
            scanf("%d",&i);
            switch(i) {
            case 1:
                printf("请查找元素:");
                scanf("%d",&x);
                j=finds(L,x);
                if(j) printf("指定元素位置=%d
    ",j);
                break;
            case 2:
                printf("请输入插入元素位置:"); scanf("%d",&k);
                printf("请输入插入元素值:"); scanf("%d",&x);
                j=inserts(L,k,x);
                if(j) {printf("插入后顺序表如下所示:
    "); prints(L);}
                break;
            case 3:
                printf("请输入删除元素位置:");
                scanf("%d",&k);
                j=deletes(L,k);
                if(j!=0) {printf("删除后顺序表如下所示:
    "); prints(L);}
                break;
            case 0:
                exit(0); break;
            default:
                printf("输入有误!
    ");
            }
        }
    }
    View Code

    格式更加合理了叭……就

    还学到了ElemType的使用嘞,不戳!

    终于回忆起来我的博客园了嘻嘻,学校机房有的登陆不上啊啧啧啧,为数不多的保存机会咯!

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    poj_1274The Perfect Stall
    USACO历年比赛的数据和解题报告
    最近公共祖先(least common ancestors algorithm)
    poj_1273Drainage Ditches
    oracle中type的使用
    乐观锁和悲观锁
    java 邮件服务器之james安装配置
    乐观锁和悲观锁
    oracle中type的使用
    java 邮件服务器之james安装配置
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/15303299.html
Copyright © 2020-2023  润新知