题目内容 (请给出正确答案)
[主观题]

/*第二周顺序表作业: 请先阅读main()函数,了解程序功...

/*第二周顺序表作业: 请先阅读main()函数,了解程序功能,然后实现如下函数,并整个程序调试成功。 int ListInsert_sq(SqList &L, int i, ElemType e); int ListDeleteByIndex_sq(SqList &L, int i, ElemType &e); int ListDeleteByValue_sq(SqList &L, ElemType e); void ListTraverse(SqList L); */ //程序中多处用到了C++中的引用参数传递,请使用C++编译器 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE+1]; //约定:从elem[1]开始存储元素,elem[0]放弃不用,这样元素在线性表中的位序,与数组下标一致 int length; } SqList; //返回顺序表L中第1个与e相等的数据元素位序 int LocatElem_sq(SqList &L, ElemType e); //在第k个元素前插入元素x,若操作成功返回1, 若操作失败(如k非法、数组空间已满),则返回0 int ListInsert_sq(SqList &L, int k, ElemType e); //按指定位置删除元素:删除线性表L中第k个元素,用e返回其值,L长度减1。若k非法,则返回0,否则返回1 int ListDeleteByIndex_sq(SqList &L, int k, ElemType &e); //按值删除元素:在顺序表L中删除第一个值为e的元素。若删除成功返回1,若e不存在,则返回0 int ListDeleteByValue_sq(SqList &L, ElemType e); //遍历顺序表,输出所有元素 void ListTraverse(SqList L); int main() { SqList L; //顺序表 ElemType e; //存储一个元素值 int i, index; int slt; //存储用户的选择 printf("输入n和n个整数:"); scanf("%d", &L.length); for(i = 1; i <= l.length; i++) 下标从1开始 scanf("%d", &l.elem[i]); while(1) { printf("1.按值查找元素\n"); printf("2.按指定序号删除元素\n"); printf("3.按指定值删除元素\n"); printf("4.在指定位置插入指定元素\n"); printf("5.输出所有元素\n"); printf("0.退出\n"); printf("请输入你的选择:\n"); &slt); if(slt="=" 0) break; switch(slt) case 1: printf("输入待查找元素:"); &e); index="LocatElem_sq(L," e); locatelem()将返回顺序表l中第1个与e相等的元素下标 if(index> 0) printf("找到,下标为%d\n", index); else printf("找不到\n"); break; case 2: //按指定位置删除元素:读入一个序号i,删除线性表L中第i个元素,用e返回其值,L长度减1 printf("请输入待删除元素的序号i:"); scanf("%d", &i); if(ListDeleteByIndex_sq(L, i, e)) { printf("删除成功,被删除的元素是%d\n", e); printf("剩余元素为:\n"); ListTraverse(L); //遍历顺序表,输出所有元素 } else printf("删除失败\n"); break; case 3: //按值删除元素:读入一个整数e,在顺序表L中删除第一个值为e的元素,删除成功返回1,若e不存在,则返回0 printf("请输入待删除元素的值e:"); scanf("%d", &e); if(ListDeleteByValue_sq(L, e)) { printf("删除成功\n"); printf("剩余元素为:\n"); ListTraverse(L); //遍历顺序表,输出所有元素 } else printf("删除失败\n"); break; case 4: //在指定位置上插入新元素:读入一个整数e,和一个插入位置i,在线性表L中第i个元素之前插入新元素e, L长度加1 printf("请输入待插入元素:"); scanf("%d", &e); printf("请输入新元素位置序号:"); scanf("%d", &i); if(ListInsert_sq(L, i, e)) { printf("操作成功,更新后的序列如下:\n"); ListTraverse(L); //遍历顺序表,输出所有元素 } else printf("操作失败\n"); break; case 5: ListTraverse(L); //遍历顺序表,输出所有元素 break; } //结束switch }//结束while return 0; } //返回顺序表L中第1个与e相等的数据元素位序 int LocatElem_sq(SqList &L, ElemType e) { int i; for(i = 1; i <= l.length; i++) 下标从1开始 if(e="=" l.elem[i]) 若找到,返回下标1~l.length return i; 0; 若查找失败,返回0 }>

提问人:网友jqwestwind 发布时间:2022-01-07
参考答案
  抱歉!暂无答案,正在努力更新中……
如搜索结果不匹配,请 联系老师 获取答案
更多“/*第二周顺序表作业: 请先阅读main()函数,了解程序功…”相关的问题
第1题
司钻法第二周循环过程中,压井液在环空内上返时套压(),环空摩阻()、液柱压力()。

A. 下降;升高;升高

B. 升高;下降;升高

C. 下降;升高;下降

点击查看答案
第2题
金属钠是第一族,第二周期的元素。
点击查看答案
第3题
第二周胚胎发生的结构上、下胚层构成的胚盘
点击查看答案
第4题
设一个栈的输入序列是 1,2,3,4,5,则下列序列中是栈的合法输出序列的是( )。

A、5 1 2 3 4

B、4 5 1 3 2

C、4 3 1 2 5

D、3 2 1 5 4

点击查看答案
第5题
下列关于栈的叙述中,错误的是: 1.采用非递归方式重写递归程序时必须使用栈 2.函数调用时,系统要用栈保存必要的信息 3.只要确定了入栈次序,即可确定出栈次序 4.栈是一种受限的线性表,允许在其两端进行操作

A、仅 1

B、仅 1、2、3

C、仅 1、3、4

D、仅 2、3、4

点击查看答案
第6题
消除递归不一定需要使用栈
点击查看答案
第7题
进制转换。 输入一个十进制正整数n和一个目标进制R(1 <r> <10),将n转换为r进制。要求不使用递归或数组,而使用第1题或第2题中定义的栈来实现。>
点击查看答案
第8题

/*本题要求实现带头链表的栈,写出Push 、Pop函数。 函数接口定义: Status Push(LinkList L, ElemType e); Status Pop(LinkList L, ElemType &e); 其中 L 和 e 都是用户传入的参数。 L 是带头结点的头指针; e 是数据元素。 其中 LinkList定义如下: typedef struct LNode { ElemType data; struct LNode * next; }LNode,*LinkList; 裁判测试程序样例: */ #include <malloc.h> #include <stdio.h> #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemType; typedef struct LNode { ElemType data; struct LNode * next; }LNode,*LinkList; Status InitList(LinkList L); Status Push(LinkList L, ElemType e); Status Pop(LinkList L, ElemType &e); int main() { LinkList L; int x; InitList(L); //初始化链栈 Push(L,1); Push(L,2); Push(L,3); Pop(L, x); printf(" %d\n", x); return 0; } void InitList(LinkList &L) { L->next = NULL; } /* 请在这里填写答案 */

点击查看答案
第9题

本题要求实现顺序栈,写出Push 、Pop函数。 函数接口定义: Status Push(SeqStack L, ElemType e); Status Pop(SeqStack L, ElemType &e); 其中 L 和 e 都是用户传入的参数。 L 是带头结点的头指针; e 是数据元素。 其中SeqStack定义如下: typedef struct { ElementType Data[MaxSize]; // 存储元素的数组 Position Top; //栈顶指针 }SeqStack; 待完善程序如下: #include <malloc.h> #include <stdio.h> #define MaxSize 100 /* 堆栈最大容量 */ #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemType; typedef int Position; typedef struct { ElemType Data[MaxSize]; /* 存储元素的数组 */ Position top; /* 栈顶指针, 指示栈顶元素之后的位置 */ }SeqStack; Status StackEmpty(SeqStack s); Status Push(SeqStack L, ElemType e); Status Pop(SeqStack L, ElemType &e); int main() { SeqStack s; ElemType x; s.top = 0; //初始化链栈 Push(s, 1); Push(s, 2); Push(s, 3); while(!StackEmpty(s)) { Pop(s, x); printf(" %d\n", x); } return 0; } Status StackEmpty(SeqStack s) //判断栈s是否为空 { return s.top == 0; } /* 请在这里填写答案 */

点击查看答案
第10题
求二叉树的镜像:所谓镜像,即二叉树的左右子树位置是互换的。
点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信