数据结构— 数组、特殊矩阵、稀疏矩阵(一)

简介: 数据结构— 数组、特殊矩阵、稀疏矩阵

了解一下, 什么是数组呢?


🎊🎊🎊概述:


🔻🔻🔻🔻🔻数组:是一组具有相同数据类型的数据元素的集合。数组元素按某种次序存储在一个地址连续的内存单元空间中。


🔻🔻🔻🔻🔻一维数组:一个顺序存储结构的线性表。[a0,a1,a2, ....]


🔻🔻🔻🔻🔻二维数组:数组元素是一维数组的数组。[ [] , [] , [] ] 。二维数组又称为矩阵。


df0edbb914c44d229319a97cf139af75.png


🎊🎊🎊数组的顺序存储(一维):

🔺🔺🔺🔺🔺多维数组中,存在两种存储方式:


🔫🔫🔫 以行序为主序列的存储方式(行优先存储)。大部分程序都是按照行序进行存储的。


🔫🔫🔫 以列序为主序列的存储方式(列优先存储) 。


🔺🔺🔺🔺🔺一维数组内存地址 :


🔫🔫🔫 Loc(0) :数组的首地址。


🔫🔫🔫 i : 第 i 个元素。


🔫🔫🔫 L :每一个数据元素占用字节数。


858bceecc3ef48a987b4c69aab585a72.png


例:求A[6] 的内存地址:


5ae20d1b19484a03955a843068fade51.png

🎊🎊🎊数组的顺序存储(二维)

🏄🏄🏄🏄 行序:

🍀🍀🍀 行序:使用内存中一维空间(一片连续的存储空间),以行的方式存放二维数组。先存放第一行,在存放第二行,依次类推存放所有行。


8581ac258b994388bbc9007b22beb19e.png


🍀🍀🍀 二维数组(n×m)内存地址(以==行序==为主序列) :


🔹🔹🔹 Loc(0,0) :二维数组的首地址。


🔹🔹🔹 i : 第i个元素。


🔹🔹🔹 L : 每一个数据元素占用字节数。


🔹🔹🔹 m:矩阵中的列数。


🔹🔹🔹 n:矩阵中的行数。

039c9e0cb2e94403adfbe7ef38353fd9.png

ed76fa142ec34b2bb0e7bddd73496bfb.png


注意:

如果索引号不是从0开始,不能使用此公式。


如果索引号不是从0开始的,需要先将索引号归零,再使用公式。


962dced6b5f9429693ec3b4e0bb662f6.png


🏄🏄🏄🏄 列序:

🎃🎃🎃 列序:使用内存中一维空间(一片连续的存储空间),以列的方式存放二维数组。先存放第一列,再存放第二列,依次类推,存放所有列。


ba3b65f2073b4b8d987cfe4a5f130e45.png


🎃🎃🎃 二维数组(n×m)内存地址(以==列序==为主序列):

ab5a1ac961a94ce5ad90838530550999.png


4d20d81076c542378446452bdd423a9d.png


🏄🏄🏄🏄 小试牛刀:

1、有一个二维数组A[1..6,0..7],每一个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组占用的存储空间大小是(  )个字节。


A. 48


B. 96


C. 252


D. 288


072a8213fe634909b8561f3ca69c2e20.png


2、设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以==列序==为主顺序存放,则数组元素A[5,8]的存储首地址为( )。


A. BA + 141


B. BA + 180


C. BA + 222


D. BA + 225


06277f81c153494a8e930810ab3e3fcd.png


3、设有数组A[0..8,1..10],数组的每个元素占5字节,数组从内存首地址BA开始以==列序==为主顺序存放,则数组元素A[7,8]的存储首地址为( BA + 350 )。


1359ba4de60b4d0588954018cfe54ef7.png


💙 💜 ❤️ 💙 💜 ❤️ 💚💙 💜 ❤️ 💚💙 💜 ❤️ 💚💙 💜 ❤️ 💚💙 💜 ❤️ 💚💙 💜 ❤️ 💚


🚓 🚗 🚗 🚕 🚖 呼啦呼啦!呼啦呼啦!🚓 🚗 🚗 🚕 🚖

d81cd867ed354623afab2a858f0030c4.gif

相关文章
|
4月前
|
存储 Java 程序员
数据结构之 - 深入了解数组数据结构
数据结构之 - 深入了解数组数据结构
63 6
|
3月前
|
存储 算法 编译器
数据结构实验之矩阵的运算器(二维数组)
本实验旨在通过团队合作,掌握数组和矩阵相关运算的代码实现,包括矩阵的加减、数乘、转置、乘法、n次方及行列式的计算。实验过程中,成员们需分工协作,解决编程难题,最终实现一个功能完备的矩阵计算器。通过本实验,不仅锻炼了编程能力,还加深了对数学概念的理解,同时培养了团队合作精神。
87 4
|
14天前
|
存储 人工智能 算法
C 408—《数据结构》算法题基础篇—数组(通俗易懂)
408考研——《数据结构》算法题基础篇之数组。(408算法题的入门)
58 23
|
4月前
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
147 64
|
3月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
99 5
|
3月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
81 4
|
4月前
|
算法 程序员 索引
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
71 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
|
4月前
|
存储 算法 定位技术
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
这篇文章主要介绍了稀疏数组和队列的概念、应用实例以及如何使用数组模拟队列和环形队列的实现方法。
50 0
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
|
3月前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
328 9
|
3月前
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
53 1

热门文章

最新文章