未完成

99 阅读1分钟
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#define MAX 100
int num;
using namespace std;
struct node
{
    int d[MAX],len;
};
void init(struct node *st)
{
    for(int i=0; i<MAX; i++)
    {
        st->d[i]=0;
    }
    st->len=0;
}
void Insert(struct node  *st,int k,int pos)
{
    for(int i=st->len; i>=pos; i--)
    {
        st->d[i+1]=st->d[i];
    }
    st->d[pos-1]=k;
    st->len++;
}
void disply(struct node *st)
{
    for(int i=0; i<st->len; i++)
    {
        printf("%d ",st->d[i]);
    }
    printf("\n");
}
void dele(struct node *st)
{
    printf("请输入删除第几个位置的数字:\n");
    int pos;
    cin>>pos;
    for(int i=pos; i<st->len; i++)
    {
        st->d[i-1]=st->d[i];
    }
    st->len--;
}
void dele2(struct node *st)
{
    int m;
    cin>>m;
    for(int i=0; i<st->len; i++)
    {
        if(m==st->d[i])
        {
            for(int j=i; j<st->len; j++)
            {
                st->d[j]=st->d[j+1];
            }
            st->len--;
        }
    }
}
void pf()
{
    printf("0.查看顺序表。\n");
    printf("1.空顺序表的插入。\n");
    printf("2.插入指定位置的数值放入顺序表中。\n");
    printf("3.删除指定位置上的数值。\n");
    printf("4.删除指定的数值。\n");
    printf("5.退出操作。\n");
    printf("请输入您要进行的操作:\n");
    cin>>num;
}
void is(struct node *st,int k)
{
    for(int i=0;i<st->len;i++)
    {
        if((k-1)==i)
        {
            for(int j=st->len;j>=i;j--)
            {
                st->d[j+1]=st->d[j];
            }
            st->d[i]=k;
        }
    }
    st->len++;
}
int main()
{
    int n,m,i;
    struct node st;
    init(&st);
    pf();
    while(1)
    {
        if(num==0)
        {
            disply(&st);
        }
        if(num==1)
        {
            printf("请输入顺序表的长度:\n");
            cin>>n;
            for(i=1; i<=n; i++)
            {
                cin>>m;
                Insert(&st,m,i);
            }
        }
        else if(num==2)
        {
            printf("请输入两个相邻的位置:\n");
            int k1,k2;
            cin>>k1>>k2;
            is(&st,k1,k2);
        }
        else if(num==3)
        {

            dele(&st);

        }
        else if(num==4)
        {
            dele2(&st);

        }
        else if(num==5)
        {
            return 0;
        }
        pf();
    }
    return 0;
}