python知识点整理笔记(一.数据结构)

数据的逻辑结构、物理结构

  1. 数据的逻辑结构:描述的是数据元素之间的逻辑关系。数据的逻辑结构分为三种典型结构:
    集合:元素间为松散的关系,只是同属于一个集合而已。
    线性结构
    线性结构的逻辑特征是有且仅有一个起始结点和一个终端结点,并且所有结点只有一个直接前趋和一个直接后继。
    非线性结构:图型结构、树型结构
      非线性结构的特征是一个结点可能有多个直接前趋或多个直接后继。
  2. 数据的物理结构
      数据的存储结构是数据的逻辑结构在计算机内部的表示或实现,又称为数据的物理结构,它包括数据元素的表示和关系的表示。与计算机语言无关。
    在计算机内有四种基本的存储表示方法:
    (1)顺序存储方法
    (2)链式存储方法
    (3)索引存储方法
    (4)散列存储方法

    这四种方法既可以单独使用,也可以组合起来对数据结构进行存储。同一种逻辑结构采用不同的存储方法,可以得到不同的存储结构。

线性表

1) 线性表的基本概念:线性表是一种最简单、常用的数据结构,通常一个线性表是由n(n>0)个性质相同的数据元素组成的有限序列。
2)线性表的顺序存储指的就是把线性表的各个数据元素依次存储在一组地址连续的存储单元里。用这种方法存储的线性表简称为顺序表。 要求会计算顺序表中元素的存储地址。
3)顺序存储结构的特点
优点:无须为表示结点间的逻辑关系而增加额外的存储空间;
缺点: 顺序存储结构要求占用连续的存储空间,线性表中数据元素的最大个数需要预先设定,即需要静态分配。
4)链式存储结构的特点
优点:结点空间的动态申请和动态释放。数据元素之间的次序使用指针来控制,因此插入删除时不需要移动大量的数据。
缺点:每个结点的指针域需要另外加存储空间。 链式存储是一种非随机存储结构,对于任意结点的操作都要首先从开始指针顺链查找该结点。

1)栈的基本概念
栈是限定仅在栈顶进行插入和删除的线性表。
2)入栈、出栈如何实现(掌握)。要求,给定一组数据,能写出相应的出栈顺序。

队列

1)队列的概念:队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素,在队列中,允许插入的一端称为队尾,允许删除的一端称为队头。
2)入队、出队如何实现(掌握)。要求,给定一组数据,能写出相应的队列情况。

二叉树

1)二叉树的概念
二叉树是一个有限的集合,这个集合或者是空集,或者是由一个根结点和分别称为左子树和右子树的互不相交的二叉树组成。
根、父节点、兄弟节点、双亲节点、子节点、节点的度、树的度、树的深度、叶子节点、满二叉树、完全二叉树。
2)二叉树的性质
(1)在二叉树的第 i层上至多有2 i–1个结点(i≥1)。
(2)深度为k的二叉树至多有2k -1个结点(k≥1)。
(3)对任何一棵二叉树T,如果其叶子结点数为n0,度为2的结点数为n2,则n0= n2+1。
(4)具有n个结点的完全二叉树的深度为+1。
(5)如果对一棵有n个结点的完全二叉树(其深度为+1)的结点按层编号(从第1层到第+1层,每层从左到右)。则对任一结点i(1≤i≤n)有:
①如果i=1,结点i是根结点,无双亲;如果i>1,则其双亲PARENT(i)是结点。
②如果2i>n,则结点i无左孩子,为叶子结点;否则其左孩子LCHILD(i)是结点2i。
③如果2i+1>n,则结点i无右孩子;否则其右孩子RCHILD(i)是结点2i+1。
3)二叉树的遍历:给出一棵二叉树,可以得到其三种遍历结果
遍历就是按某指定规则访问树中每个结点,且使得每个结点均被访问一次,而且仅被访问一次。遍历是二叉树经常要遇到的一种操作。
前序遍历二叉树。前序遍历二叉树的递归定义为:若二叉树为空,则空操作;否则进行如下操作:
①访问根结点;
②前序遍历根结点的左子树;
③前序遍历根结点的右子树。
中序遍历二叉树。中序遍历二叉树的操作定义为:若二叉树为空,则空操作;否则进行如下操作:
①中序遍历根结点的左子树;
②访问根结点;
③中序遍历根结点的右子树。
后序遍历二叉树。后序遍历二叉树的操作定义为:若二叉树为空,则空操作;否则进行如下操作:
①后序遍历根结点的左子树;
②后序遍历根结点的右子树;
③访问根结点。
(/≧▽≦)/,马上就期末考试了,整理一下笔记,期末做好准备欧,(/≧▽≦)/

猜你喜欢

转载自blog.csdn.net/qq_43328040/article/details/85043388