早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用c语言构造一个表,然后查找表内是否有某元素,如果有则交换该元素和它相邻的下一元素的位置构造元素类型为整型的线性表,将以下元素插入分别插入线性表:2、查找表中是否存在

题目详情
用c语言构造一个表,然后查找表内是否有某元素,如果有则交换该元素和它相邻的下一元素的位置
构造元素类型为整型的线性表,将以下元素插入分别插入线性表:
<34 56 20 9 15 5>
2、查找表中是否存在元素20,实现元素20与元素9的交换;
3、按照课题要求编写函数,实现线性表元素<34 56 9 20 15 5>的倒置,即倒置后的表应为< 5 15 20 9 56 34 >。
▼优质解答
答案和解析
/*
A线性表为: 34 56 9 20 15 5
请输入要查找的元素: 20
找到、并成功交换。
34 56 20 9 15 5
反转后的A为:
5 15 9 20 56 34
Press any key to continue
*/
#include #include
#define Max 100 // 定义线性表的最大长度typedef int Datatype; // 定义线性表的数据类型
typedef struct {
Datatype *data; // 线性表头指针
int length; // 当前长度
}SqList;

SqList *InitList(Datatype a[],int n) {
int i;
SqList *L = (SqList *)malloc(sizeof(SqList));
L->data = (Datatype *)malloc(sizeof(int) * Max);
L->length = n;
for(i = 0; i < n; ++i)
L->data[i] = a[i];
return L;
}

int Search_Swap(SqList *L,Datatype d) {
int i;
Datatype t;
for(i = 0; i < L->length; ++i) {
if(L->data[i] == d) {
if(i > 0) {
t = L->data[i];
L->data[i] = L->data[i - 1];
L->data[i - 1] = t;
return 1;
}
}
}
return 0;
}

void ReverseList(SqList *L) {
int i;
Datatype t;
for(i = 0; i < L->length/2; ++i) {
t = L->data[i];
L->data[i] = L->data[L->length - 1 - i];
L->data[L->length - 1 - i] = t;
}
}

void PrintList(SqList *L) {
int i;
for(i = 0; i < L->length; ++i)
printf("%d ",L->data[i]);
printf("\n");
}

int main() {
Datatype x,a[] = {34,56,9,20,15,5};
SqList *A = InitList(a,6);
printf("A线性表为: ");
PrintList(A);
printf("请输入要查找的元素: ");
scanf("%d",&x);
if(Search_Swap(A,x)) {
printf("找到、并成功交换。\n");
PrintList(A);
}
else printf("没有找到元素 %d。\n",x);
ReverseList(A);
printf("反转后的A为:\n");
PrintList(A);
free(A->data);
free(A);
return 0;}
看了 用c语言构造一个表,然后查找...的网友还看了以下:

卵细胞在内若遇到精子则形成,它不断进行细胞分裂,逐渐发育成,再缓慢地移动到中,最终植入子宫内膜,这  2020-05-17 …

从能量互相转换的观点来看,液压泵是将带动它工作的电动机输入的机械能转换成流动油液的A.动力  2020-05-19 …

在资产交换中,如果换入的资产中涉及应收款项的,下列说法中正确的有( )A.以一项资产换入的  2020-05-19 …

什么是人体的气体交换?人体的气体交换包括哪些?肺与外界环境的气体交换(肺的通气),肺泡中的氧扩散进  2020-05-24 …

汉字输入方式总体上可分为(9),其中联想输入方式属于(9)。A.直接输入方式和变换输入方式 直接输入  2020-05-26 …

如图是一个“有理数转换器”(箭头是指数进入转换器的路径,方框是对进入的数进行转换的转换器)(1)你  2020-06-12 …

我请教一个关于砝码换算的问题各位哥哥姐姐好:不同级别的砝码,它们的允差可以相互换算吗?例如:5kg  2020-06-16 …

(2006•南宁)如图所示,设电源电压保持不变,R是一个定值电阻,在a、b两点间接入一个标有“3V  2020-06-27 …

一个寓言故事,关于改变的说得是有一只鸟,老是弄脏自己的巢,于是它不得不换个窝.但新换了窝之后,住不  2020-06-30 …

总千春爆把门风竹新万送声桃户暖中换瞳入一旧瞳屠岁符日苏除这首诗要加标点吗?怎样加?把“总千春爆把门  2020-07-02 …