首页 > 其他分享 >未知顺序表

未知顺序表

时间:2023-04-17 20:56:22浏览次数:52  
标签:listlen 顺序 return int SLType SL 未知 data

#include<iostream>
#include<string>
using namespace std;
#include<bits/stdc++.h>
#define maxlen 100 //表的最大长度
typedef struct{
char key[10];
char name[20];
int age;
} Data;//节点的结构
typedef struct{
Data listdata[maxlen+1];//用于保存结点的结构体数组
int listlen;//节点数量/表的长度
}SLType;//顺序表的结构
int SLInit(SLType* SL,int i)
{
SL->listlen=i;
}//初始一个空表。
int SLLength(SLType*SL){
return SL->listlen;
}//输出表的长度。
int SLInsert(SLType *SL,int n,Data data)
{
int i;
if(SL->listlen>=maxlen)
{
printf("顺序表已满,无法插入\n");
return 0;
}
if(n>SL->listlen||n<1)
{
printf("插入元素序号有误,无法插入\n");
return 0;
}
for(i=SL->listlen;i>n;i--)
{
SL->listdata[i+1]=SL->listdata[i];
}
SL->listdata[n]=data;
SL->listlen+=1;
return 1;
}//插入一个数据
int SLAdd(SLType*SL,Data data)
{
if(SL->listlen>=maxlen)
{
printf("顺序表已满,无法添加");
return 0;
}
else{
SL->listdata[SL->listlen]=data;
return 1;
}
} //判断顺序表是否已满,在表的末尾添加一个数据。
int SLDelete(SLType *SL,int n,Data data)
{
if(n<1||n>SL->listlen)
{
printf("输入节点序号有误,无法删除\n");
return 0;
}
int i=n-1;
for(i;i<SL->listlen;i++)
{
SL->listdata[i]=SL->listdata[i+1];
}
SL->listlen-=1;
return 1;
}//删除指定数据;
int SLFindByCont(SLType*SL,char *key){
int i=1;
for(i;i<=SL->listlen;i++)
{
if(SL->listdata[i].key==key)
return i;
}
return 0;
} //查找指定数据的序号;
int Printf(SLType *SL)
{
int i;
for(i=1;i<=SL->listlen;i++)
{
cout<<"第"<<i<<"个学生的学号、姓名、年龄"<<SL->listdata[i-1].key<<" "<<SL->listdata[i-1].name<<" "<<SL->listdata[i-1].age<<endl;
}
return 0;
}
int main()
{
int i;
SLType SL;//定义顺序表
Data data;//定义节点
char key[10];
SLInit(&SL,6);
cout<<"初始化顺序表完成"<<endl;
while(1){
cout<<"请输入节点(学号 姓名 年龄)"<<endl;
cin>>data.key>>data.name>>data.age;
fflush(stdin);
if(data.age)
{
if(!SLAdd(&SL,data))
{
break;
}
}
else{
break;
}
}
cout<<endl<<"顺序表的节点顺序:";
Printf(&SL);
return 0;
}

标签:listlen,顺序,return,int,SLType,SL,未知,data
From: https://www.cnblogs.com/djcf/p/17327455.html

相关文章

  • 实现顺序表的增删查改
    什么是顺序表我们要知道什么是顺序表首先我们就要知道什么是线性表,线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物......
  • fgo2023卡池顺序国服介绍 命运冠位指定必抽卡池推荐_fgo2021卡池
    首先先说呵呵,《fgo(宿命玄应选定)》是这款厨力手机游戏,讨厌的配角不管再怎么菜深入细致培育也是能出场的,必须抽的配角就那几个,所以玩者们能根据自己的喜爱选择配角。对于崭新的2023年,相信FGO的玩者最关心的,就是2023年配角卡池的轮换次序,以及有哪些崭新的配角卡池,这样就能进行宝石的......
  • 顺序队
    一.队列队列是一种具有先进先出(FIFO)特性的线性数据结构,它只允许在队列的两端进行插入和删除操作。队列的一端称为队尾(rear),另一端称为队头(front)。新元素总是插入在队列的队尾,而从队列中删除元素时则总是删除队头元素。由于队列具有FIFO特性,因此队列通常用于需要按照顺序处理数据......
  • js 异步任务执行顺序问题
    js是单线程的(非阻塞的),实现方法就是事件循环;分同步任务和异步任务;newPromise((resolve,reject)=>{resolve(1)console.log('log1')}).then(()=>{console.log('log2')})console.log('log3')setTimeout(()=>......
  • springboot项目打成jar包后 ,配置文件加载的优先级顺序
    SpringBoot会按照以下顺序来加载配置文件:1、内置默认值:SpringBoot会首先加载内置的默认值,这些默认值定义在SpringBoot的代码中,例如,内置的默认端口号为8080。2、应用级别的配置文件:SpringBoot会从以下位置加载应用级别的配置文件,这些位置按照优先级逐一检查:当前目录下的/c......
  • 关于js对象遍历保证顺序的问题
    Object.keys(obj).sort().forEach(...),注:仅用于对象的key值是可定义顺序的,如key值为时间错,数字等,通过sort(),可默认按照数组大小排序(也可通过sort的自定义函数排序)object.keys/values()和forin不能保证对象传成数组或遍历的顺序友情链接1友情链接2......
  • 结构体与临时变量增长顺序
    #include<stdio.h>#include<string.h>structTestscanf{charinput[20];charintput1[3];};intmain(){charinput[]="John25";charintput1[]="12";printf("%p%p\n",(void*)input,(......
  • git中 commit 和 pull 的先后顺序问题会产生多余的merge记录
    commit和pull的先后顺序问题最近提交代码,发现一个问题。自己很清楚的记得本次的提交是没有进行合并的。奇怪的死gitlab中的history历史中显示了我对本次进行了Merge合并操作。并且Merge合并操作中显示了很多不是本次对代码的修改。这就很明显了,git自动生成的merge操......
  • 调整数组顺序使奇数位于偶数前面
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例:输入:nums= [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确的答案之一。提示:0<=nums.length<=500000<=nums[i]<=10000int*exchange(int*nums,......
  • 栈的定义及基本操作实现(顺序栈)
    个人主页:【......