<form id="dn777"><listing id="dn777"></listing></form>

        <form id="dn777"></form>

        <address id="dn777"></address>

        二級公共基礎知識考點分析 下載本文

        二級公共基礎知識考點分析 第1章 數據結構與算法 1.1 算法和數據結構的基本概念 1.算法

        (1)算法的基本概念

        算法是指解題方案的準確而完整的描述。

        A.算法的基本特征:①可行性;②確定性;③有窮性;④擁有足夠的情報。

        B.算法的基本要素:①算法中對數據的運算和操作:基本的運算和操作包括算術運算、邏輯運算、關系運算和數據傳輸;②算法的控制結構:基本的控制結構包括順序結構、選擇結構、循環結構。

        C.算法設計的基本方法:①列舉法;②歸納法;③遞推;④遞歸;⑤減半遞推技術;⑥回溯法。

        (2)算法的復雜度

        算法的復雜度主要包括時間復雜度和空間復雜度。

        A.算法的時間復雜度:是指執行算法所需要的計算工作量。算法的工作量用算法所執行的基本運算次數來度量,而算法所執行的基本運算次數是問題規模的函數。即:算法的工作量=f(n)其中n是問題的規模。

        B.算法的空間復雜度:一般是指執行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占用的存儲空間以及算法執行過程中所需要的額外空間。 2.數據結構的基本概念

        數據結構作為計算機的一門學科,主要研究和討論以下三個方面的問題: ①數據集合中各數據元素之間所固有的邏輯關系,即數據的邏輯結構;

        ②在對數據進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構; ③對各種數據結構進行的運算。

        (1)數據結構的定義

        ①數據結構是指相互有關聯的數據元素的集合。

        ②數據處理是指對數據集合中的各元素以各種方式進行運算,包括插入、刪除、查找、更改等運算,也包括對數據元素進行分析。

        ③數據的邏輯結構是指反映數據元素之間邏輯關系的數據結構。

        ④數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。常用的存儲結構有順序、鏈接、索引等存儲結構。 (2)數據結構的圖形表示

        在數據結構的圖形表示中,對于數據集合D中的每一個數據元素用中間標有元素值的方框表示,一般稱之為數據結點,簡稱結點;為了進一步表示各數據元素之間的前后件關系,對于關系R中的每一個二元組,用一條有向線段從前件結點指向后件結點。 (3)線性結構與非線性結構

        如果一個非空的數據結構滿足下列兩個條件: ①有且只有一個根結點;

        ②每一個結點最多有一個前件,也最多有一個后件。

        則稱該數據結構為線性結構。如果一個數據結構不是線性結構,則稱為非線性結構。

        1.2 線性表和線性鏈表 1.線性表

        (1)線性表的基本概念

        線性表(Linear List)是最簡單、最常用的一種數據結構。 線性表是由n(n≥0)個數據元素

        組成的一個有限序列,表中的每一個數據

        元素,除了第一個外,有且只有一個前件,除了最后一個外,有且只有一個后件。 (2)線性表的順序存儲結構

        線性表的順序存儲結構具有以下兩個基本特點: ①線性表中所有元素所占的存儲空間是連續的;

        ②線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。 (3)順序表的插入運算

        在線性表采用順序存儲結構時,如果插入運算在線性表的末尾進行,即在第n個元素之后(可以認為是在第n+1個元素之前)插入新元素,則只要在表的末尾增加一個元素即可,不需要移動表中的元素;如果要在線性表的第1個元素之前插入一個新元素,則需要移動表中所有的元素。 (4)順序表的刪除運算

        在線性表采用順序存儲結構時,如果刪除運算在線性表的末尾進行,即刪除第n個元素,則不需要移動表中的元素;如果要刪除線性表中的第1個元素,則需要移動表中所有的元素。 2.線性鏈表

        (1)線性鏈表的基本概念

        在線性鏈表中,各數據元素之間的前后件關系是由各結點的指針域來指示的,指向線性表中第一個結點的指針HEAD稱為頭指針,當HEAD=NULL(或0)時稱為空表。 (2)線性鏈表的基本運算

        線性鏈表的運算主要有:線性鏈表的插入、刪除、查找、合并、分解、逆轉、復制、排序等。

        ①在線性鏈表中查找指定元素

        在非空線性鏈表中尋找包含指定元素值x的前一個結點p的基本方法如下:從頭指針指向的結點開始往后沿指針進行掃描,直到后面已沒有結點或下一個結點的數據域為x為止。當線性鏈表中不存在包含元素x的結點時,則找到的p為線性鏈表中的最后一個結點號。

        ②線性鏈表的插入

        為了在線性鏈表中插入一個新元素,首先要給該元素分配一個新結點,它可以從可利用棧中取得。然后將存放新元素值的結點鏈接到線性鏈表中指定的位置。 ③線性鏈表的刪除

        為了在線性鏈表中刪除包含指定元素的結點,首先要在線性鏈表中找到這個結點,然后將要刪除結點放回到可利用棧。 (3)循環鏈表及其基本運算

        ①在循環鏈表中增加了一個表頭結點,其數據域為任意或者根據需要來設置,指針域指向線性表的第一個元素的結點。循環鏈表的頭指針指向表頭結點。 ②循環鏈表中最后一個結點的指針域不是空,而是指向表頭結點。

        1.3 棧和隊列 1.棧及其基本運算

        棧是一種特殊的線性表,在這種線性表的結構中,一端是封閉的,不允許進行插入與刪除元素;另一端是開口的,允許插入與刪除元素。在順序存儲結構下,對這種類型線性表的插入與刪除運算是不需要移動表中其他數據元素的。

        在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧是按照“先進后出”(FILO—First In Last Out)或“后進先出”(LIFO—Last In First Out)的原則組織數據的。棧的基本運算有三種:入棧、退棧與讀棧頂元素。 2.隊列及其基本運算

        (1)隊列(queue)是指允許在一端進行插入、而在另一端進行刪除的線性表。隊列又稱為“先進先出”(FIFO—First In First Out)或“后進后出”(LILO—Last In Last Out)的線性表。

        (2)循環隊列及其運算

        在實際應用中,隊列的順序存儲結構一般采用循環隊列的形式。所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用。循環隊列主要有兩種基本運算:入隊運算與退隊運算。





        动漫黄在线观看免费视频