吼,数据结构上机课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("顺序表中不存在该元素!\n"); return 0;}
    else return i+1;
}

int inserts(S &L,int i,int x) //插入
{
    int j;
    if(L.l>=M) {printf("顺序表已满,无法进行插入操作!\n"); return 0;}
    if(i<=0||i>L.l+1) {printf("插入位置不正确!\n"); 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("删除位置不正确!\n"); 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("\n");
    return 1;
}

void main()
{
    S L;
    ElemType e,x;
    int i=1,k,j;
    inits(L);
    printf("初始化\n建立顺序表如下:\n"); //不用自己手动输入
    inserts(L,1,1); inserts(L,2,2);
    inserts(L,3,3); inserts(L,4,4);
    prints(L);
    while(i<=3)
    {
        printf("\n        主菜单        \n");
        printf("    1  查找指定元素    \n");
        printf("    2  插入元素到指定位置    \n");
        printf("    3  删除某一指定位置元素    \n");
        printf("    0  结束程序    \n");
        printf("--------------------------------------\n");
        printf("请输入您选择的菜单号<1,2,3,0>:");
        scanf("%d",&i);
        switch(i) {
        case 1:
            printf("请查找元素:");
            scanf("%d",&x);
            j=finds(L,x);
            if(j) printf("指定元素位置=%d\n",j);
            break;
        case 2:
            printf("请输入插入元素位置:"); scanf("%d",&k);
            printf("请输入插入元素值:"); scanf("%d",&x);
            j=inserts(L,k,x);
            if(j) {printf("插入后顺序表如下所示:\n"); prints(L);}
            break;
        case 3:
            printf("请输入删除元素位置:");
            scanf("%d",&k);
            j=deletes(L,k);
            if(j!=0) {printf("删除后顺序表如下所示:\n"); prints(L);}
            break;
        case 0:
            exit(0); break;
        default:
            printf("输入有误!\n");
        }
    }
}
View Code

格式更加合理了叭……就

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

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

posted @ 2021-09-17 09:37  夜雨声不烦  阅读(57)  评论(0编辑  收藏  举报