当前位置: 首页 > news >正文

数据结构与算法题目集(中文)6-2顺序表操作集

题目地址
https://pintia.cn/problem-sets/15/exam/problems/type/6?problemSetProblemId=725&page=0

在这里插入图片描述
注意审题,返回false的时候不要返回ERROR,否则答案错误,机器规则是死的。

位置一般指数组下标,位序一般指数组下标+1。但是思路是一样的
比如向位置1插入元素,现在L->last是5
相当于向位序2插入元素,目前元素length有6个

但都是执行(5-1)+1 或者(6-2)+1次 即 L->last-P+1次
这个自己列举2个例子就能推出。
下面是个人写的代码,注释部分为我犯得错误,可以忽略,主要是本人记录学习用的

/*位置一般指数组下标,位序一般指数组下标+1*/
#define MAXSIZE 5
#define ERROR -1
typedef enum {false, true} bool;
typedef int ElementType;
typedef int Position;
typedef struct LNode *List;
typedef int Position;
typedef struct LNode *List;
struct LNode {ElementType Data[MAXSIZE];Position Last; /* 保存线性表中最后一个元素的位置 */
};/*创建一个空的顺序表*/
List MakeEmpty()
{int i = 0;List L = (List)malloc(sizeof(struct LNode));for(;i<MAXSIZE;i++){L->Data[i]=0;}//L->Last=-1;一定要写这个,我之前不写这个就错了,-1即不合法也就是刚创建的时候赋为-1L->Last=-1;	return L;
}/*返回顺序表中的元素X的位置(数组下标),找不到返回ERROR*/
Position Find(List L,ElementType X)
{int i = 0;//for(;i<MAXSIZE;i++)			//查找长度应该是L->Last+1次,而不是MAXSIZEfor(;i<(L->Last+1);i++){if(L->Data[i]==X)return i;}return ERROR;//这里只能写ERROR不能写false  因为题目要求
}/*将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;
如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false;*/
bool Insert( List L, ElementType X, Position P )
{int i =0;/*判断空间满了就返回FULL*/if(L->Last == MAXSIZE-1){printf("FULL");//return ERROR;return false;}//if(P<0||P>MAXSIZE-1)   MAXSIZE和L->Last不是一个东西啊,哎呦忘了if(P<0||P>(L->Last+1))		//也就是P=L->Last+2的时候明显不合适,因为中间的 L->Last+1这个位置空了{printf("ILLEGAL POSITION");//return ERROR;return false;}ElementType t = L->Last;for(i=0;i<(L->Last+1)-P;i++){L->Data[t+1]=L->Data[t];t--;																	//一定要在for循环里面加t--,不然for循环相当于重复执行相同操作}L->Data[P]=X;L->Last++;return true;//一定要写这个,否则就是答案错误,这题目好蛋疼,必须按照要求来
}/*将位置P的元素删除并返回true。若参数P指向非法位置,则打印“POSITION P EMPTY”(其中P是参数值)并返回false。*/
bool Delete( List L, Position P )
{int i = 0;if(P<0||P>=((L->Last)+1))			//这里错了
//	if(P<0||P>(L->Last)){//printf("POSITION %d EMPTY\n",P);  //不能加\n,否则提示格式不对printf("POSITION %d EMPTY",P);//return ERROR;		//题目让写false,就不能写ERRORreturn false;}for(;i<(L->Last)-P;i++){L->Data[P]=L->Data[P+1];P=P+1;}L->Last--;return true;
}																											

在这里插入图片描述

http://www.lryc.cn/news/368928.html

相关文章:

  • 8086 汇编笔记(十二):int 指令 端口 直接定址表
  • 揭开FFT时域加窗的奥秘
  • 【AI基础】第二步:安装AI运行环境
  • 【MySQL】聊聊唯一索引是如何加锁的
  • k8s-CCE使用node节点使用VIP--hostNetworkhostPort
  • 18、关于优化中央企业资产评估管理有关事项的通知
  • AI大模型日报#0610:港大等1bit大模型“解决AI能源需求”、谷歌开源TimesFM时序预测模型
  • 速盾:图片cdn加速 免费
  • 贪心算法例子
  • vivado HW_ILA_DATA、HW_PROBE
  • refault distance算法的一点理解
  • 软件安全技术【太原理工大学】
  • 异常(Exception)
  • 一文者懂LLaMA 2(原理、模型、训练)
  • MySQL 存储函数及调用
  • 设计模式七大原则-单一职责原则SingleResponsibility
  • msfconsole利用Windows server2008cve-2019-0708漏洞入侵
  • Reinforcement Learning学习(三)
  • hw meta10 adb back up DCIM
  • Unity2D游戏制作入门 | 12(之人物受伤和死亡的逻辑动画)
  • 从河流到空气,BL340工控机助力全面环保监测网络构建
  • 零拷贝技术
  • Flutter_Android上架GooglePlay_问题
  • 【Java】解决Java报错:NumberFormatException
  • 视觉大模型(VLLM)学习笔记
  • 【软考的系统分析师的考题考点解析2025】
  • JavaScript前端技术入门教程
  • 类和对象(上续)
  • 【C++初阶学习】第十三弹——优先级队列及容器适配器
  • Java(十七)---ArrayList的使用