第6章数组和广义表第4讲-小结
- 格式:pptx
- 大小:330.35 KB
- 文档页数:18
数据结构串、数组和广义表知识点总结
数据结构是计算机科学中研究数据如何组织、存储、管理和操作的学科。
三个常见的数据结构串、数组和广义表都是用于存储和操作数据的。
1. 串:
- 串是由0个或多个字符组成的有限序列。
它是一维数组的特例。
- 串的操作包括插入、删除、修改和查找等常见操作。
- 串可以通过数组、链表或动态分配的内存来实现。
2. 数组:
- 数组是一种线性数据结构,它由一组连续的内存空间组成,
存储相同类型的数据。
- 数组的操作包括插入、删除、修改和查找等常见操作。
- 数组的访问时间复杂度为O(1),但插入和删除的时间复杂度
较高。
3. 广义表:
- 广义表是由若干元素组成的有序集合,每个元素可以是原子
或者是一个广义表。
- 广义表可以通过链表来实现,每个节点包含两个指针,一个
指向元素,一个指向下一个节点。
- 广义表的操作包括插入、删除、修改和查找等常见操作。
- 广义表可以表示任意层次的嵌套结构,具有灵活性和扩展性。
总结:
- 串、数组和广义表都是常见的数据结构,用于存储和操作数据。
- 串是字符的有限序列,可以通过数组或链表来实现。
- 数组是一维线性数据结构,存储相同类型的数据,具有常数时间复杂度的访问操作。
- 广义表是由元素组成的有序集合,可以通过链表来实现,能够表示任意层次的嵌套结构。
数据结构数组与广义表知识点总结数组是一种线性数据结构,可以存储多个相同类型的元素。
它的特点是元素的大小固定,并且在内存中是连续存储的。
数组的访问方式是通过下标来访问,下标从0开始。
数组可以在编程中应用于各种情况,比如存储一组数字、一组字符串等。
广义表是一种扩展的线性数据结构,可以存储不同类型的元素。
它由元素和表构成,其中表可以是空表、原子或子表。
广义表可以递归定义,即子表可以包含更多的子表。
广义表的访问方式是通过递归来访问,可以对表的元素进行遍历和操作。
在数据结构中,数组和广义表都有自己的特点和用途,下面对它们的知识点进行总结:1.数组的特点及应用:-数组是一种线性数据结构,可以存储多个相同类型的元素。
-数组的内存分配是连续的,可以通过下标来访问元素。
-数组的大小固定,一旦定义后不能改变。
-数组的访问速度快,可以通过下标直接访问元素。
-数组适合用于存储一组相同类型的数据,比如一组数字、一组字符串等。
-数组的应用场景包括但不限于:排序算法、查找算法、图像处理、矩阵运算等。
2.数组的操作和常用算法:-初始化:可以直接赋值或使用循环初始化数组。
-访问元素:通过下标访问元素,下标从0开始。
-修改元素:直接通过下标修改元素的值。
-插入元素:需要移动插入位置之后的元素。
-删除元素:需要移动删除位置之后的元素。
-查找元素:可以使用线性查找或二分查找等算法。
-排序算法:比如冒泡排序、选择排序、插入排序等。
-数组还有一些常用的属性和方法,比如长度、最大值、最小值等。
3.广义表的特点及应用:-广义表是一种扩展的线性数据结构,可以存储不同类型的元素。
-广义表由元素和表构成,表可以是空表、原子或子表。
-广义表可以递归定义,即子表可以包含更多的子表。
-广义表的访问方式是通过递归遍历和操作。
-广义表适合存储一组不同类型的数据,比如存储学生信息、函数调用栈等。
-广义表的应用场景包括但不限于:函数式编程、树的表示、图的表示等。
数组是用来存储同一种数据类型的数据的一种数据结构。
1、普通的一维数组是用来实现一些线性结构的好助手,例如我们使用的线性表的顺序存储,栈的顺序存储,队列的顺序存储,这里面都要-用到数组作为存储成部分。
2、经过扩展的二维数组,作用将更加明显,我们使用扩展的二维数组来存储矩阵。
而实际在工程的计算中矩阵的使用情况是十分普遍的。
我们将用到矩阵的加减法,这些必须都要投影到二维数组上进行计算,我们一般在使用二维数组时将会使用按行优先存储。
我们的教材中就会有非常明显的表现,在矩阵转置的算法中,我们就会使用到二维数组按行优先的存储,跳着找顺着存时,我们会将所有的列进行遍历,找到原来矩阵中某个元素的列值和现在这时for循环的列值是相等的。
将这个元素存储到相应现在这个三元组表中的位置。
即按列的顺序找,然后按顺序存入三元组中。
3、和数组相关的还有矩阵的压缩存储。
我们平时使用的数组中有些是非常特别的,例如有些数组中仅仅只有下三角部分是一些不同的元素,其余部分全是0.这个时候,我们从节省存储空间的角度考虑,我们可以使用矩阵的压缩存储。
我们使用一个一维数组来按行优先的顺序来存储这个矩阵,下三角矩阵是对称的,因此我们只在这个一维数组中存储下三角中的数据。
其余0的部分可以不存储,或者就是用一个存储单元来存储。
有以上所述,我们很自然的就想到将数组引申到矩阵的存储上来接着讨论。
存储特殊矩阵的时候,例如我们在存储下三角矩阵的时候,我们使用的是一维数组,将下三角按照行优先的顺序存储所有的数据。
在这个过程中,我们确定元素的下表是这样来的。
a ij的下标是这样的:k = i*(i+1)/2+j ,现在以k做下标来存储这个元素。
矩阵的存储。
特殊矩阵的存储我们可以使用一维数组来压缩存储。
普通矩阵的存储我猜想可以直接使用二维数组了。
但对稀疏矩阵的存储,我们应该使用三元组来存储。
我们直接记录非零元素所在的行标和列标和元素值。
很显然这将也会是一个一维数组,但是这个一维数组的数组元素不是普通的数据类型,他们是可以看成是一个个的单元格,这个单元格的特殊之处就是他们的成员有三个,行标,列标,元素值。
数据结构课程总结(精选3篇)数据结构课程总结篇1数据结构与算法是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且也已经成为其他理工专业的热门选修课。
随着高级语言的发展,数据结构在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。
通过学习,先报告如下:一、数据结构与算法知识点本学期学的《数据结构与算法》这本书共有十一个章节:第一章的内容主要包括有关数据、数据类型、数据结构、算法、算法实现、C语言使用中相关问题和算法分析等基本概念和相关知识。
其中重点式数据、数据类型、数据结构、算法等概念;C语言中则介绍了指针、结构变量、函数、递归、动态存储分配、文件操作、程序测试与调试问题等内容。
第二章主要介绍的是线性逻辑结构的数据在顺序存储方法下的数据结构顺序表(包括顺序串)的概念、数据类型、数据结构、基本运算及其相关应用。
其中重点一是顺序表的定义、数据类型、数据结构、基本运算和性能分析等概念和相关知识。
二是顺序表的应用、包括查找问题(简单顺序查找、二分查找、分块查找)、排序问题(直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、归并排序)、字符处理问题(模式匹配)等内容。
本章重点和难点在查找和排序问题的算法思想上,6种排序方法的性能比较。
第三章主要介绍的是线性逻辑结构的数据在链接存储方法下数据结构链表的相关知识。
主要是单链表、循环链表的数据类型结构、数据结构、基本运算及其实现以及链表的相关应用问题,在此基础上介绍了链串的相关知识。
在应用方面有多项式的相加问题、归并问题、箱子排序问题和链表在字符处理方面的应用问题等。
本章未完全掌握的是循环链表的算法问题和C的描述。
第四章介绍在两种不同的存储结构下设计的堆栈,即顺序栈和链栈的相关知识,了解堆栈的相关应用,掌握应用堆栈来解决实际问题的思想及方法。