408-数据结构

news/2025/2/13 15:48:28/

数据结构在学什么?
1.用代码把问题信息化
2.用计算机处理信息
在这里插入图片描述
ch1
在这里插入图片描述
数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
ch2
在这里插入图片描述

//假设线性表的元素类型为ElemType,则静态分配的顺序表存储结构描述为
#define MaxSize 50				//定义线性表的最大长度
typedef struct {ElemType data[MaxSize];		//顺序表的元素int length;					//顺序表的当前长度
}SqList;						//顺序表的类型定义//动态分配的顺序表存储结构描述为
#define InitSize 100			//表长度的初始定义
typedef struct {ElemType* data;				//指示动态分配数组的指针int MaxSize, length;		//顺序表的最大容量和当前个数
}SeqList;						//动态分配数组顺序表的类型定义
//C的初始动态分配语句为
L.data = (ElemType*)malloc(sizeof(ElemType) * InitSize);
//C++的初始动态分配语句为
L.data = new ElemType[InitSize];
#define MaxSize 50
//静态分配的顺序表,定义一个数组,它包括数据类型和数据长度
typedef struct {int data[MaxSize];int length;				//表示数据表的当前长度
}SqList;//基本操作——初始化一个顺序表
void InitList(SqList& L) {//for (int i = 0; i < MaxSize; i++)//	L.data[i] = 0;L.length = 0;
}
int main() {SqList L;InitList(L);//尝试“违规”打印整个data数组for (int i = 0; i < MaxSize; i++)//i < L.lengthprintf("data[%d] = %d ", i, L.data[i]);return 0;
}
#define InitSize 10
//动态分配的顺序表,定义一个指针,它包括数据类型,但需要分配数据长度
typedef struct {int* data;int MaxSize, length;	//表示数据表的最大长度和当前长度
}SqList;void InitList(SqList& L) {L.data = (int*)malloc(sizeof(int) * InitSize); //开辟内存空间L.MaxSize = InitSize;L.length = 0;
}void IncreaseSize(SqList& L, int len) {int* p = L.data;		//临时变量p暂存L.data的内容L.data = (int*)malloc(sizeof(int) * (L.MaxSize + len)); //开辟新的内存空间for (int i = 0; i < L.length; i++) {L.data[i] = p[i];	//暂存的的内容还给L.data}free(p);				//释放p的内存空间
}int main() {SqList L;InitList(L);IncreaseSize(L, 5);return 0;
}
bool ListInsert(SqList& L, int i, int e) {//在第i个位置插入元素e,下标为i-1if (i<1 || i> L.length + 1 || L.length == MaxSize) {return false;}for (int j = L.length; j >= i; j--) {L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return true;
}bool ListDelete(SqList& L, int i, int& e) {if (i<1 || i>L.length) {return false;}e = L.data[i - 1];for (int j = i; j < L.length - 1; j++) {//下标为i-1的元素不要,从i开始逐个前移L.data[j - 1] = L.data[j];}L.length--;return true;
}int GetElem(SqList L, int i) {return L.data[i - 1];
}int LocateElem(SqList L, int e){for (int i = 0; i < L.length; i++) {if (L.data[i] == e)return i + 1;				//返回的是位序,不是下标}return 0;
}

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

相关文章

北京青蓝智慧科技: 2025年ITSS IT服务项目经理的转型与挑战

2025年&#xff0c;随着信息技术的持续快速发展&#xff0c;IT服务管理&#xff08;ITSS&#xff09;在企业运营中的关键作用将进一步凸显。作为一位资深IT行业分析师&#xff0c;我预测2025年的IT服务经理将面临诸多挑战&#xff0c;同时也将迎来新的发展机遇。 人工智能&…

鸿蒙HarmonyOS NEXT开发:横竖屏切换开发实践

文章目录 一、概述二、窗口旋转说明1、配置module.json5的orientation字段2、调用窗口的setPreferredOrientation方法 四、性能优化1、使用自定义组件冻结2、对图片使用autoResize3、排查一些耗时操作 四、常见场景示例1、视频类应用横竖屏开发2、游戏类应用横屏开发 五、其他常…

C++ 相对的字符串,判断却不相对

一、场景 在做项目的时候&#xff0c;有这样一个场景&#xff0c;根据字符串名称&#xff0c;给对应的变量赋值。传递的字符串跟对比的字符串是一样的&#xff0c;判断的时候却不相等&#xff0c;导致变量未正确附上值。 二、解决 经过查找&#xff0c;发现是字符串编码的问题…

碳纤维复合材料制造的六西格玛管理实践:破解高端制造良率困局的实战密码

碳纤维复合材料制造的六西格玛管理实践&#xff1a;破解高端制造良率困局的实战密码 在全球碳中和与高端制造升级的双重驱动下&#xff0c;碳纤维复合材料行业正经历前爆发式增长。航空航天、新能源汽车、风电叶片等领域对碳纤维产品的性能稳定性提出近乎苛刻的要求&#xff0…

Go语言构建微服务:从入门到实战

引言 在云原生时代&#xff0c;微服务架构已成为构建复杂分布式系统的首选方案。Go语言凭借其卓越的并发支持、简洁的语法和高效的运行时&#xff0c;成为微服务开发的利器。本文将深入探讨如何用Go构建健壮的微服务系统&#xff0c;并通过完整案例演示关键实现细节。 一、微…

基于SpringBoot+Vue的求职招聘管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化和信息化的时代背景下&#xff0c;求职招聘管理系统作为一种高效的线上服务平台&#xff0c;正逐渐改变着传统的招聘方式。随着互联网的普及和技术的不断进步&#xff0c;求职者与企业之间的信息交互变得越来越频繁和复…

Java面试题简答(整理)

文章目录 1、String 和StringBuffer的区别&#xff1f;2、抽象类和接口的区别&#xff1f;3、 运行时异常和一般异常有何异同&#xff1f;4、hashMap和hashTable的区别&#xff1f;5、Connection和Connections的区别&#xff1f;6、什么是servlet的生命周期&#xff1f;7、slee…

HAL库USART中断接收的相关问题

文章目录 一、使用中断的步骤二、相关函数分析1、HAL_UART_IRQHandler2、UART_Receive_IT3、HAL_UART_Receive_IT4、UART_Start_Receive_IT5、总结 三、HAL库使用心得 一、使用中断的步骤 1、配置GPIO 2、配置USART1 3、设置UART1中断优先级&#xff08;不开启手动中断&#x…