首页 > 其他分享 >AustOj系统随笔

AustOj系统随笔

时间:2022-09-29 17:36:21浏览次数:39  
标签:AustOj 顺序 return La int 系统 elem length 随笔

以下代码是我根据老师提供的部分源码及自我的认知补充注释

#include<stdio.h> //头文件
#include<malloc.h> //malloc,free,realloc函数头文件
#define MAXSIZE 100 //设线性表初始分配空间大小
typedef int ElemType;  //取别名

//0:定义顺序表的结构类型
typedef struct{  //自定义数据类型,typedef为取名字 struct为自定义数据类型
ElemType *elem;  //element type(“元素的类型”)的简化体,是数据结构中用来抽象的一个概念
int length;  //定义长度
int listsize;  //定义表的空间大小
}SqList; //动态存储分配

//1:初始化顺序表
int InitList_Sq(SqList &L )
{
L.elem=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE); //利用malloc函数动态分配内存
if (!L.elem) return 0;  
L.length=0;
L.listsize=MAXSIZE;
return 1;
}

//2:打印顺序表中所有元素
void PrintList(SqList &L)
{
int i;
for(i=0;i<L.length;i++)
printf("%d\n",L.elem[i]);
}

//*****3:在顺序表中第i个位置(i=1~n)插入元素*****
int ListInsert_Sq(SqList &L,int i,ElemType e){
if (i<1 || i>L.length+1)  //判断顺序表操作是否合法
return 0; 
//--------补充代码--Start------

if(L.length==MAXSIZE) //判断顺序表是否满

return 0;

for(int j=L.length;j>=i-1;j--) //从表尾开始遍历,直到空出一个位置

L.elem[j+1]=L.elem[j]; //将i前面元素后移1位

L.elem[i-1]=e; //此时i-1即为j,将空出来的位置给e

L.length++;
//--------补充代码--End-------
return 1;
}

//*****4:删除顺序表中第i(i=1~n)个元素,用e返回删除的元素*****
int ListDelete_Sq(SqList &L, int i, ElemType &e)
{
//--------补充代码--Start------
if(i<1||i>L.length0)

return 0;

for(j=i;j<=L.length-1;j++) //将i后面的元素都前移1位

L.elem[j-1]==L.elem[j];//挤掉第i个元素

e=L.elem[j];

L.length--;

//--------补充代码--End-------
return 1;
}

//主函数
int main()
{
//以下代码请认真阅读,切勿做任何修改
SqList La;
int i,n,e;

//初始化顺序表
InitList_Sq(La);
//输入元素个数
scanf("%d",&n);
//依次读取n个数据插入顺序表
for(i=1;i<=n;i++)
{
//输入数据元素
scanf("%d",&e);
//插入顺序表
ListInsert_Sq(La,i,e);
}
//按顺序输出顺序表中元素
PrintList(La);

//----------------------------
//输入要删除元素的位置
scanf("%d",&i);
//执行删除
ListDelete_Sq(La,i,e);
//输出删除后的元素
printf("%d\n",e);
//输出删除后的顺序表的内容
PrintList(La);
printf("%d\n",La.length);
return 0;
}

标签:AustOj,顺序,return,La,int,系统,elem,length,随笔
From: https://www.cnblogs.com/liujy2233/p/16742358.html

相关文章

  • 操作系统概念
    操作系统的概念操作系统的层次结构:裸机(纯硬件)==》操作系统==》应用程序(软件)==》用户操作系统的职责:负责管理协调硬件、软件等计算机资源的工作为上层应用程序、用......
  • 操作系统四个特征
    操作系统的四个特征并发、共享(并发和共享两个最基本的特征,二者互为存在条件)、虚拟、异步并发概念:指两个或多个时间在同一时间间隔内发生。这些时间宏观上是同时发生的......
  • Linux操作系统之mv命令详解
    前言1、mv命令是move英文单词的缩写,可以用来移动文件或者将文件改名。2、mv命令是Linux操作系统下的一个文件管理命令,mv命令主要有三大功能,如下:①将文件改名②移动文件......
  • 互联网医院系统源码的发展趋势||数字医疗搭建
    疫情当下,为了缓解患者就医难的问题,有很多医院建立了互联网医院。不但可以利用图文,视频等方式为患者提供咨询类的医疗服务,也可以线上诊断,开处方,检查检验,结合线上线下安排进一......
  • 企业可以从员工上网行为管理系统防范数据泄漏
    随着经济的发展,数据和网络安全以及员工生产力是经营企业的三个重要方面。实现这些目标的一种方法是实施员工上网行为管理系统,它能管理和监控员工的所有上网行为,避免从内部造......
  • 迅为RK3568开发板Busybox制作最小文件系统编译busybox
    保存退出之后,我们需要设置临时环境变量如下图所示:exportPATH=/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH输入“echo$PATH”,查看环......
  • VMware安装Win11+WSA子系统和使用教程
    VMware安装Win11+WSA子系统和使用教程作者:Sna1lGo时间:2022/9/29下载相关文件:Win11镜像:DownloadWindows11(microsoft.com)VMware:下载VMwareWorkstationPro-VMw......
  • K8S服务轻松对接EFK日志系统
    前言在不断更新和进步的的网络时代,相应的各种开发技术都有了较高层次的提升。现在比较流行的是容器集群管理平台(比较出名的是kubernetes),在平台上运行着不同编程语言产出的......
  • Python学生成绩管理系统(完整版)
    学生成绩管理系统简介一个带有登录界面具有增减改查功能的学生成绩管理系统(面向对象思想,利用tkinter库进行制作,利用.txt文件进行存储数据)源代码......
  • 工业互联网领域的企业,都已经接入了ERP或者MES系统了吗?
    肯定不是得啊!之前的两化,后来的企业上云,到当下的智能制造、数字化转型,不都是想把制造业(也就是你说的工业互联网企业)往这个方向推么,ERP和MES是企业数字化的一部分,但不是全部,......