数据结构笔记

数据结构

       随着网络和科技发展,计算机需要计算的数据量越来越庞大。为了提高计算效率,节省大量的资源和时间,便有了数据结构和算法。选用合适的数据结构和算法来管理和处理庞大的数据时候,能够极大提高计算效率。

       数据结构是一种有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素的集合。他包含三方面的内容,逻辑关系、存储关系以及操作。其能够解决实际问题,使所有的合法输入输入都能产生预期的正确的结果,能够在有限的步骤内执行并完程序,能够用最简短的语句最高效的完成任务。

       在数据结构的学习之初,引入了顺序表、链表、栈、队列以及数的概念,又从后面的进一步学习中更好地理解了数据结构和算法存在的用途及意义

顺序表

       顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。

       顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

       顺序并且连续存储,访问方便,大小固定,但插入和删除不方便。

链表

       链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点,即链表中的每一个元素组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。但由于不必须按顺序存储,链表在插入和删除数据时比线性表顺序表要快得多。

       链表在创建时申请的空间可以不连续,插入、删除数据较方便,但访问数据不方便。

       链表在插入数据时有三种插入方法,分别为头插法,尾插法和中间插入法。

栈与队列

       栈又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素,从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

       队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

       树是一种数据结构,它是由n个有限节点组成一个具有层次关系的集合。树的结构特点为根朝上,叶朝下,因此看起来像一棵倒挂的树。每个节点有零个或多个子节点,称为该节点的度数,一棵树的度数是指该树种节点的最大度数,度数为0的节点称为树叶;没有父节点的节点称为根节点,把根节点的层数定义为1,树的节点层数就等于父节点的层数加1,把节点层数的最大值称为该树的深度或者高度;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。

       二叉树:二叉树是树形结构的一个重要类型。二叉树特点是每个节点最多只能有两棵子树,且有左右之分。二叉树由n个有限元素的集合,该集合或者为空、或者由根及两个不相交的左子树和右子树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个节点。

      

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值