首页 > 学院 > 开发设计 > 正文

数组顺序表初始化、特定位置插入元素、删除特定值等操作

2019-11-06 06:21:13
字体:
来源:转载
供稿:网友
完善教材中数组顺序表初始化、特定位置插入元素、删除特定值等操作
#include <iostream>using namespace std;//顺序表删除所有值为x的元素#define Maxsize 100typedef int ElemType;//定义结构体数组typedef struct{    ElemType elem[Maxsize];    int last;}SeqList;//初始化数组void initList(SeqList *L){    ElemType e;    L->last=0;    PRintf("请输入元素:/n");    scanf("%d",&e);    while(e!=0)    {        if((L->last)>Maxsize)            printf("表已满,无法继续输入");        L->elem[L->last]=e;        (L->last)++;        scanf("%d",&e);    }    L->last--;}//在数组的第i个位置插入元素eint InsList(SeqList *L,int i,ElemType e){    int k;    if(i<1||i>L->last)    {        printf("插入位置i不合法");        return 0;    }    if((L->last)>Maxsize)    {        printf("表已满");        return 0;    }    for(k=L->last;k>=i;k--)    {        L->elem[k+1]=L->elem[k];    }    L->elem[k+1]=e;    L->last++;    return 0;}//删除数组值为x的元素void delx(SeqList *L,int x){    int i=0,j=0;    while(i<=(L->last))    {        if((L->elem[i])!=x)        {            L->elem[j]=L->elem[i];            i++;            j++;        }        else i++;    }    L->last=j-1;}//打印数组void show(SeqList *L){    int i=0;    for(i=0;i<=L->last;i++)    {        printf("%d ",L->elem[i]);    }    printf("/n");}int main(){    int i;    ElemType e1,e2;    SeqList L;    initList(&L);    printf("%d/n",L.last);    printf("请输入要插入的数和插入的位置:");    scanf("%d %d",&e1,&i);    InsList(&L,i,e1);    printf("插入后的数组为:/n");    show(&L);    printf("请输入要删除的数:");    scanf("%d",&e2);    delx(&L,e2);    printf("删除后的数组为:/n");    show(&L);    return 0;}
实验结果如下:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表