赞
踩
编程实现如下功能:
(1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,并输出顺序表中各元素值,观察输入的内容与输出的内容是否一致。
(2)在顺序表的第i个元素之前插入一个值为x的元素,并输出插入后的顺序表中各元素值。
(3)删除顺序表中第i个元素,并输出删除后的顺序表中各元素值。
(4)在顺序表中查找值为e的数据元素,如果查找成功,则显示“查找成功”和该元素在顺序表中的位置,否则显示“查找失败”。
/*------------实验要求-----------*/ //编程实现如下功能: //(1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,并输出顺序表中各元素值,观察输入的内容与输出的内容是否一致。 //(2)在顺序表的第i个元素之前插入一个值为x的元素,并输出插入后的顺序表中各元素值。 //(3)删除顺序表中第i个元素,并输出删除后的顺序表中各元素值。 //(4)在顺序表中查找值为e的数据元素,如果查找成功,则显示“查找成功”和该元素在顺序表中的位置,否则显示“查找失败”。 /*-----------实验代码-----------*/ #include<stdio.h> #include<stdlib.h> #define MAXLEN 50 typedef struct{ int elem[MAXLEN]; int length; }Sqlist; /*-----------插入函数----------*/ Sqlist Sqist_insert(Sqlist L,int i,int x){ int j; if (i<1||i>L.length+1){ printf("ERROR!"); } else if (L.length>=MAXLEN){ printf ("OVERFLOW"); } else { for (j=L.length-1;j>=i-1;j--){ L.elem[j+1]=L.elem[j]; L.elem[i-1]=x; L.length++; } } return L; } /*-----------删除函数-----------*/ Sqlist Sqlist_delete (Sqlist L,int i){ int j; if(i<1||i>L.length) printf("ERROR!"); else{for(j=i;j<=L.length-1;j++) L.elem[j-1]=L.elem[j]; L.length--; } return L; } /*-----------查找函数-----------*/ int Sqlist_search(Sqlist L,int x){ int i; for (i=1;i<=L.length&&L.elem[i-1]!=x;i++); if (i<=L.length) return i; else printf("未找到!\n"); return 0; } /*-----------输出函数-----------*/ void Sqlist_display(Sqlist L){ int j; for (j=0;j<=L.length-1;j++) printf("%4d",L.elem[j]); printf("\n"); } /*-----------主函数-----------*/ void main(){ Sqlist L; int i,x,j; printf("\n请输入顺序表长度:"); scanf("%d",&L.length); printf("请输入顺序表元素:\n"); for (j=0;j<=L.length-1;j++){ scanf("%d",&L.elem[j]); } printf("请输入插入操作位置:"); scanf("%d",&i); printf("请输入需要插入的新元素:"); scanf("%d",&x); L=Sqist_insert(L,i,x); Sqlist_display(L); printf("请输入删除操作位置:"); scanf("%d",&i); L=Sqlist_delete(L,i); Sqlist_display(L); printf("请输入要查找的元素:"); scanf("%d",&x); if (Sqlist_search(L,x)){ printf("查找成功!%d 在第 %d 位\n",x,Sqlist_search(L,x)); } else("查找失败!\n"); system("pause"); } /*-----------后记-----------*/ //插入和删除会发生溢出错误,待解决 // 2020/12/2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。