数据结构知识(五篇)
文件格式:DOCX
时间:2023-03-13 00:00:00    小编:花花的花花呀8

数据结构知识(五篇)

小编:花花的花花呀8

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。相信许多人会觉得范文很难写?接下来小编就给大家介绍一下优秀的范文该怎么写,我们一起来看一看吧。

数据结构知识篇一

摘要

如何合理的组织数据、高效率的处理数据是扩大计算机应用领域、提高软件效率的关键。在软件开发过程中要求“高效地”组织数据和设计出“好的”算法,并使算法用程序来实现,通过调试而成为软件,必须具备数据结构领域和算法设计领域的专门知识。

《数据结构与算法》课程就是主要学习在软件开发中涉及的各种常用数据结构及其常用算法,在此基础上,学习如何利用数据结构和算法解决一些基本的应用问题。

课程主要内容

本学期一共学习了十章的内容,下面就这十章的内容作了详细的介绍。第一章:数据结构与算法概述

本章主要是对数据、数据类型、数据结构、算法及算法分析等基本概念的掌握,而如何合理地组织数据、高效地处理数据正是扩大计算机领域、提高软件效率的关键,所以对这些概念的理解就显得十分重要。

数据是指描述客观事物的数值、字符、相关符号等所有能够输入到计算机中并能被计算机程序处理的符号的总称,其基本单位是数据元素,而数据类型是一个同类值的集合和定义在这个值集上的一组操作的总称。在高级程序语言中定义一种数据类型时,编译程序编译系统就能获得如下信息:(1)、一组性质相同的值的集合;(2)、一个预订的存储体系;(3)、定义在这个值集合上的一组操作。数据结构是指数据元素之间的关系,它包括数据的逻辑结构、存储结构、一组运算集合;数据的逻辑结构分为线性结构和非线性结构。数据的存储方法有:顺序存储方法、链接存储方法、索引存储方法和散列存储方法。接下来便是关于算法的有关概念,算法是为解决一个特定问题而采取的确定的有限步骤集合,它具有有穷性、确定性、可行性、输入和输出。关于算法的性能分析,分为时间性能分析和空间性能分析。第二章:顺序表及其应用

本章主要是对顺序表、顺序表的结构、数据类型、基本算法及相关应用的介绍。顺序表是一种简单而常用的数据结构,其应用范围较为广泛,包括查找问题、排序问题、字符处理问题等内容。第三章:链表及其应用

链表是一种简单、常用的数据结构,与顺序表相比,具有插入、删除结点不需要移动元素,不必事先估计存储空间大小等优点,操作较为灵活。它有六种基本运算:(1)、置空表(2)、求表长(3)、按序号取元素(4)、按值查找

(5)、插入(6)、删除。

单链表即链表的每个结点只有一个指针域,用来存储其直接后继的存储位置。但是这样就使得对结点前面的元素的操作很困难,所以就在每个结点增加一个指向其前驱结点的指针域,从而构成双向链表。同时由于每个结点的地址既存放在其前驱结点的后继指针中,又存放在其后继结点的前驱指针域中,所以双向链表的插入操作分为前插和后插。第四章:堆栈及其应用

首先要明白栈是一种受限制的线性结构,遵守“先进后出”的规则,其插入与删除操作都在栈顶进行。

其次根据顺序存储和链接存储,栈分为顺序栈和链栈。其中顺序栈栈是用地址连续的存储空间依次存储栈中数据元素,并记录当前栈顶数据元素的位置;基本算法包括置空栈、判栈空、判栈满、取栈顶元素、入栈和出栈。而链栈则使用链式存储堆栈的数据元素,并记录当前栈顶数据元素的位置;每个结点包括data数据域:用来存放数据元素的值,next指针域:用来存放其直接后继结点的存储地址,其基本运算和顺序栈相同。

最后是关于堆栈的应用:(1)、数值转换问题;由于在将十进制数n转换为d进制数时,最先得到的余数是d进制数的最低位,在显示结果时需要最后输出;而最后求得的余数是d进制数的最高位,需要最先输出。这与栈的“先入后出”性质相吻合,所以可用栈来存放逐次求得的余数,然后输出。(2)、括号匹配问题;当读取一个表达式时,一旦读到括号就进栈,而读到下一个括号时就与栈中括号比较,若相匹配,则出栈,否则继续读取表达式。到最后,如果栈为空栈,则说明括号匹配,否则括号不匹配。第五章:队列及其应用

首先和栈一样,要知道队列是一种受限制的线性结构,遵守“先进先出”的规则,其插入在队尾、删除在对头。

其次根据顺序存储和链式存储,队列也分为顺序队列和链队列。其中顺序队列是用地址连续的向量空间依次存储队列中的元素,同时记录当前对头元及队尾元素在向量中的位置。然后是链队列,即在存储器中占用任意的、连续或不连续的物理存储区域,使用动态结点空间分配;在这其中,值得注意的是链队列不存在队满的情况。

第六章:特殊矩阵、广义表及其应用

首先是关于矩阵的概念即存储方法;

1、二维数组中元素aij的地址为:(1)、以行序为主存储,loc(aij)=loc(a00)+[j*(m+1)+i]*d(2)、以列序为主存储,loc(aij)=loc(a00)+[i*(n+1)+j]*d,其中m为行数、n为列数、d为每个元素所占的存储单元的个数。

2、对称矩阵:即将下三角存储在一个一维数组sa[k]中,其中0≤k<(n+1)/2;当i≥j时,k=i*(i+1)/2+j,当i

3、三角矩阵:和对称矩阵的存储思路一样用一维数组sa[k]存储,若是上三角矩阵(下三角中元素均为常数c),则当i≥j时,k=i*(i+1)/2+j,当ij时,k=n*(n+1)/24、对角矩阵:同样存储在一维数组sa[k]中,k=2i+j

复制