全国计算机等级考试二级公共基础知识及题目汇总(最全)

第一章 数据结构与算法

1.1 算法 1、算法是指解题方案的准确而完整的描述。换句话说,算法是对特定问题求解步骤的一种描述。 2、算法的基本特征(1)可行性(2)确定性(3)有穷性(4)拥有足够的情报。 3、算法复杂度主要包括时间复杂度和空间复杂度。

(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。

(2)算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本概念

1、数据结构是指相互有关联的数据元素的集合。

2、数据结构主要研究和讨论以下三个方面的问题:数据的逻辑结构、数据的存储结构、对各种数据结构进行的运算。

3、数据结构分为两大类型:线性结构和非线性结构。

(1)线性结构:1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。常见的线性结构有线性表、栈、队列和线性链表等。

(2)非线性结构:不满足线性结构条件的数据结构。常见的非线性结构有树、二叉树和图等。 1.3 线性表及其顺序存储结构

1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。线性表是由n(n≥0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表中数据元素的个数称为线性表的长度。线性表可以为空表。 *:线性表是一种存储结构,它的存储方式:顺序和链式。

2、线性表的顺序存储结构具有两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 3、顺序表的插入、删除运算

(1)顺性表的插入运算时需要移动元素,在等概率情况下,平均需要移动n/2个元素。

(2)顺性表的删除运算时也需要移动元素,在等概率情况下,平均需要移动(n-1)/2个元素。 插入、删除运算不方便。 1.4 栈和队列

1、栈及其基本运算

栈是限定在一端进行插入与删除运算的线性表。

在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,栈底元素总是最先被插入的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。 栈具有记忆作用。

栈的基本运算:1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。

栈的存储方式和线性表类似,也有两种,即顺序栈和链式栈。 2、队列及其基本运算

队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。 队列是“先进先出”或“后进后出”的线性表。

循环队列及其运算:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。循环队列中元素的个数=rear-front。 1.5 线性链表

1、线性链表:线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。因此,在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素的值,称为数据域;另一部分用于存放指针,称为指针域,用于指向该结点的前一个或后一个结点(即前件或后件),如下图所示:

数据域 指针域12n-1ndatanextHEADaa…aa^ (a)结点结构(b)一个非空的线性链表示意图

线性链表分为单链表、双向链表和循环链表三种类型。

在线性链表中插入元素或删除元素时,不需要移动数据元素,只需要修改相关结点指针。

1.6 树与二叉树 1、树的基本概念

树是一种简单的非线性结构。在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。 几个概念:根结点、孩子结点、双亲结点、

>>闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掑鏅悷婊冪箻楠炴垿濮€閵堝懐顔婂┑掳鍊愰崑鎾剁棯閹岀吋闁哄矉缍侀獮鍥敍閿濆棌鎸呮繝鐢靛仜濡﹥绂嶅⿰鍫濈闁逞屽墮椤啴濡堕崱妤€衼缂傚倸绉村Λ妤€鐜婚崸妤佸亜闁稿繐鐨烽幏铏圭磼缂併垹骞栭柟鍐茬箺閵囨劘顦寸紒杈ㄥ浮閹晠宕橀懠顑挎偅缂傚倷绶¢崰鏍偋閹惧磭鏆﹂柟鐑橆殕閸婄兘鎮楅悽鐧诲湱鏁幆褉鏀介柣妯虹仛閺嗏晛鈹戦纰卞殶闁瑰箍鍨硅灒濞撴凹鍨抽埀顒冨煐閵囧嫰寮村Δ鈧禍楣冩⒑閸濆嫮鐒跨紒鏌ョ畺楠炲棝寮崼顐f櫖濠电偞鍨堕敃鈺傚閿燂拷<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4