线性表的顺序存储

news/2024/11/24 11:23:00/

1.创建:实质是对data与length的修改

//定义一个线性表 
typedef struct
{int data[MaxSize];//存储线性表的元素 int length;//线性表的长度 
}SqList;
//新建一个表
void create(SqList &l){//传入地址才可以对其值进行改变 printf("请输入线性表的长度:\n");scanf("%d",&l.length);printf("请输入线性表的元素:\n");for(int count=0;count<l.length;count++)scanf("%d",&l.data[count]);printf("\n线性表创建成功!\n");
} 

2.添加:数组元素的后移

printf("\n线性表元素为:");for(i=0;i<l.length;i++)printf("%d\t",l.data[i]);} 
//插入元素方法
void insert(SqList &l,int i,int x)//要改变某个值,请传入它的地址才能实现对其值的操作 
{int j; //非法判断:插入位置与表的容量if(l.length>MaxSize)printf("该表已满,无法插入!");if(i<1||i>l.length+1)printf("插入序号不合法!");if(i<=l.length)//插入位置不在元素末时,其后元素后移for(j=l.length-1;j>=i-1;j--) l.data[j+1]=l.data[j];l.data[i-1]=x;//插入位置在元素末时,直接插入 l.length++;printf("\nlength:%d",l.length);printf("\nx:%d",x);printf("\n插入成功!");}

3.删除:数组元素的前移

void dele(SqList &l,int i)
{int j,e; //非法判断if(l.length==0)printf("该表为空!");if(i<1||i>l.length)printf("删除序号不合法!");e=l.data[i-1];if(i<l.length)//元素前移{for(j=i-1;j<l.length;j++)l.data[j]=l.data[j+1];}l.length--;printf("\n删除成功!");printf("\n删除元素值为:%d",e);
}

3.打印:实质是遍历输出

//输出线性表
static void print(SqList l)
{int i;printf("\n线性表元素为:");for(i=0;i<l.length;i++)printf("%d\t",l.data[i]);} 

4.主函数

#define MaxSize 20//数组的大小 
#include<stdio.h>
int main() 
{SqList l;int a,b,c;create(l);print(l);
printf("\n请输入要插入位置:");scanf("%d",&a);
printf("\n请输入要插入元素:");scanf("%d",&b);insert(l,a,b);print(l);
printf("\n请输入要删除的元素序号:");scanf("%d",&b);dele(l,b);print(l);
}```

http://www.ppmy.cn/news/1196930.html

相关文章

sql父子查询

分析sql过程 启发&#xff1a;https://blog.csdn.net/weixin_43703769/article/details/109254934 预热 分析下面的sql的执行流程 SELECT ids AS _ids,( SELECT ids : GROUP_CONCAT( id ) FROM chat WHERE FIND_IN_SET( pid, ids ) ) AS cids,l : l 1 AS LEVEL FROMchat, …

鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略

一、鸿蒙Liteos读源码教程 鸿蒙的源码是放在openharmony文件夹下&#xff0c;openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。 内核是操作系统的核心部分&#xff0c;所以像负责&#xff1a;资源管理、任务调度、内存管理、设备驱动、进程通信的源码都可以在…

竞赛 深度学习猫狗分类 - python opencv cnn

文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习猫狗分类 ** 该项目较为新颖&a…

数字处理-第10届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第3讲。 数字处理&#xff…

线性代数 第六章 二次型

一、矩阵表示 称为二次型的秩。只含有变量的平方项&#xff0c;所有混合项系数全是零&#xff0c;称为标准形&#xff1b;平方项的系数为1、-1或0&#xff0c;称为规范形。 二次型的标准形不唯一&#xff0c;可以用不用的坐标变换化二次型为标准形&#xff1b;二次型的规范形唯…

小程序如何设置用户同意服务协议并上传头像和昵称

为了保护用户权益和提供更好的用户体验&#xff0c;设置一些必填项和必读协议是非常必要的。首先&#xff0c;用户必须阅读服务协议。服务协议是明确规定用户和商家之间权益和义务的文件。通过要求用户在下单前必须同意协议&#xff0c;可以确保用户在使用服务之前了解并同意相…

6 MySQL常用的数据类型

1、整型 -- TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间&#xff0c;一般情况下越小的列越好;2、浮点数 -- 1.FLOAT 和 DOUBLE 为浮点类型&#xff0c;DECIMAL 为高精度小数类型。CPU 原生支持浮点运算&#xff0c;但是不支持 DECIMAl…

服务器有哪些用途呢

服务器可以用于许多行业&#xff0c;包括但不限于以下几个领域&#xff1a; 企业&#xff1a;服务器可以用于企业的数据存储、应用程序和网站托管、电子邮件和协作工具、数据库管理等。 金融&#xff1a;服务器可用于高频交易、投资组合优化、风险管理和分析。 零售和电子商务…