早教吧作业答案频道 -->其他-->
用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 >。
构造元素类型为整型的线性表,将以下元素插入分别插入线性表:
<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;}
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
#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语言构造一个表,然后查找...的网友还看了以下:
(1)某短周期金属元素R的部分电离能情况如图Ⅰ表示,则R元素位于周期表第族,其基态原子的电子排布式 2020-05-14 …
若函数Head(L)取得广义表L的表头元素,Tail(L)取得广义表L表尾元素,则从广义表L=(x, 2020-05-26 …
若对线性表的最常用操作是访问任意指定序号的元素,并在表尾加入和删除元素,则适宜采用( )存储。 2020-05-26 …
若某线性表的常用操作是取第i个元素及其前趋元素,则采用(37)存储方式最节省时间。A.顺序表B.单链 2020-05-26 …
实验表明,乙烯能抑制根系生长;低浓度的生长素可以促进根系生长,稍高浓度的生长素则抑制根系生长.有关 2020-06-05 …
门捷列夫发表元素周期表的时候,人们尚未发现31号元素.但门捷列夫断定它存在,预言了它的相对原子质量 2020-06-26 …
1、{(x.y)|x+y=6,x,y∈N}用列举法表示怎么表示?2、用描述法表示:方程2x+y=5 2020-07-13 …
图中的曲线表示血液流经肾单位时,尿素含量的变化,其中纵轴代表尿素含量的变化,则横轴AB表示()A. 2020-07-29 …
1871年门捷列夫在发表元素周期表的同时科学地预言了三种新元素的存在,其预言竟然与后人的发现取得了惊 2020-11-23 …
实验表明,乙烯能抑制根系生长;低浓度的生长素可以促进根系生长,但较高浓度的生长素则抑制根系生长.下列 2020-12-25 …