計算機二級公共基礎知識之基本概念

2021-03-04 09:51:23 字數 4049 閱讀 2435

佇列佇列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。

在佇列這種資料結構中,最先插入在元素將是最先被刪除;反之最後插入的元素將最後被刪除,因此佇列又稱為「先進先出」(fifo—first in first out)的線性表。

佇列空的條件:front=rear

佇列滿的條件: rear = maxsize

佇列可以用陣列q[1…m]來儲存,陣列的上界m即是佇列所容許的最大容量。在佇列的運算中需設兩個指標:head,隊頭指標,指向實際隊頭元素的前乙個位置;tail,隊尾指標,指向實際隊尾元素所在的位置。

一般情況下,兩個指標的初值設為0,這時隊列為空,沒有元素。圖1 ( a)畫出了乙個由6個元素構成的佇列,陣列定義q[1…10]。q(i) i=3,4,5,6,7,8頭指標head=2,尾指標tail=8。

佇列中擁有的元素個數為:l=tail-head現要讓排頭的元素出隊,則需將頭指標加1。即head=head+1這時頭指標向上移動乙個位置,指向q(3),表示q(3)已出隊。

見圖1 (b)。如果想讓乙個新元素入隊,則需尾指標向上移動乙個位置。即tail=tail+1這時q(9)入隊,見圖1 (c)。

當隊尾已經處理在最上面時,即tail=10,如果還要執行入隊操作,則要發生"上溢",但實際上佇列中還有三個空位置,所以這種溢位稱為"假溢位"。

克服假溢位的方法有兩種。一種是將佇列中的所有元素均向低位址區移動,顯然這種方法是很浪費時間的;另一種方法是將陣列儲存區看成是乙個首尾相接的環形區域。當存放到n位址後,下乙個位址就"翻轉"為1。

在結構上採用這種技巧來儲存的佇列稱為迴圈佇列。

佇列和棧一樣只允許在斷點處插入和刪除元素。

迴圈隊的入隊演算法如下:

1、tail=tail+1;

2、若tail=n+1,則tail=1;

3、若head=tail尾指標與頭指標重合了,表示元素已裝滿佇列,則作上溢位錯處理;

4、否則,q(tail)=x,結束(x為新入出元素)。

佇列和棧一樣,有著非常廣泛的應用。

佇列的基本運算

(1)初始化佇列 qini (q)

(2)入隊 qadd(q,x) (3)出隊 qdel(q,x)

(4)判斷佇列是否為空 qempty(q)

(5)判斷佇列是否為滿qfull(q)

在stl中,對佇列的使用很是完美

線性表線性表是最基本、最簡單、也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。

因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。

結構  線性表是一種常用的資料結構,以下介紹線性表及其順序儲存,並對棧和佇列及它們的順序實現給出了詳細的設計描述。

在實際應用中,線性表都是以棧、佇列、字串、陣列等特殊線性表的形式來使用的。由於這些特殊線性表都具有各自的特性,因此,掌握這些特殊線性表的特性,對於資料運算的可靠性和提高操作效率都是至關重要的。

線性表是乙個線性結構,它是乙個含有n≥0個結點的有限序列,對於其中的結點,有且僅有乙個開始結點沒有前驅但有乙個後繼結點,有且僅有乙個終端結點沒有後繼但有乙個前驅結點,其它的結點都有且僅有乙個前驅和乙個後繼結點。一般地,乙個線性表可以表示成乙個線性序列:k1,k2,…,kn,其中k1是開始結點,kn是終端結點。

是乙個資料元素的有序(次序)集

特徵  線性結構的基本特徵為:

1.集合中必存在唯一的乙個「第一元素」;

2.集合中必存在唯一的乙個 「最後元素」 ;

3.除最後乙個元素之外,均有唯一的後繼(後件);

4.除第乙個元素之外,均有唯一的前驅(前件)。

由n(n≥0)個資料元素(結點)a1,a2,…,an組成的有限序列。

資料元素的個數n定義為表的長度。

當n=0時稱為空表。

常常將非空的線性表(n>0)記作:

(a1,a2,…an)

資料元素ai(1≦i≦n)只是乙個抽象的符號,其具體含義在不同的情況下可以不同。

線性表的基本操作

1)setnull(l) 置空表

2)length(l) 求表長度;求表中元素個數

3)get(l,i) 取表中第i個元素(1≤i≤n)

4)prior(l,i) 取i的前趨元素

5)next(l,i) 取i的後繼元素

6)locate(l,x) 返回指定元素在表中的位置

7)insert(l,i,x)插入元素

8)delete(l,x) 刪除元素

9)empty(l) 判別表是否為空

結構特點

線性表具有如下的結構特點:

1.均勻性:雖然不同資料表的資料元素可以是各種各樣的,但對於同一線性表的各資料元素必定具有相同的數所類長度。

2.有序性:各資料元素**性表中的位置只取決於它們的序與,資料元素之前的相對位置是線性的,即存在唯一的「第乙個「和「最後乙個「的資料元素,除了第乙個和最後乙個外,其它元素前面均只有乙個資料元素直接前趨和後面均只有乙個資料元素(直接後繼)。

在實現線性表資料元素的儲存方面,一般可用順序儲存結構和鏈式儲存結構兩種方法。鏈式儲存結構將在本**線性鍊錶中介紹,本章主要介紹用陣列實現線性表資料元素的順序儲存及其應用。另外棧.佇列和串也是線性表的特殊情況,又稱為受限的線性結構。

附一道選擇題:

下列哪個不是線性表()

a. 鍊錶 b. 佇列 c.棧 d.關聯陣列

二叉樹二叉樹也是遞迴定義的,其結點有左右子樹之分,邏輯上二叉樹有五種基本形態: (1)空二叉樹——(a); (2)只有乙個根結點的二叉樹——(b); (3)右子樹為空的二叉樹——(c); (4)左子樹為空的二叉樹——(d); (5)完全二叉樹——(e)注意:儘管二叉樹與樹有許多相似之處,但二叉樹不是樹的特殊情形。

簡介  在電腦科學中,二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。二叉樹常被用作二叉查詢樹和二叉堆。

二叉樹的每個結點至多只有二棵子樹(不存在度大於2的結點),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2的(i-1)次方個結點;深度為k的二叉樹至多有2^(k) -1個結點;對任何一棵二叉樹t,如果其終端結點數(即葉子結點數)為n0,度為2的結點數為n2,則n0 = n2 + 1。

樹和二叉樹的2個主要差別:

1. 樹中結點的最大度數沒有限制,而二叉樹結點的最大度數為2;

2. 樹的結點無左、右之分,而二叉樹的結點有左、右之分。……

樹是一種重要的非線性資料結構,直觀地看,它是資料元素(在樹中稱為結點)按分支關係組織起來的結構,很象自然界中的樹那樣。樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示。樹在計算機領域中也得到廣泛應用,如在編譯源程式如下時,可用樹表示源源程式如下的語法結構。

又如在資料庫系統中,樹型結構也是資訊的重要組織形式之一。一切具有層次關係的問題都可用樹來描述。

樹的概述

樹結構的特點是:它的每乙個結點都可以有不止乙個直接後繼,除根結點外的所有結點都有且只有乙個直接前趨。以下具體地給出樹的定義及樹的資料結構表示。

樹的定義

樹是由乙個或多個結點組成的有限集合,其中:

⒈必有乙個特定的稱為根(root)的結點;

⒉剩下的結點被分成n>=0個互不相交的集合t1、t2、......tn,而且, 這些集合的每乙個又都是樹。樹t1、t2、......tn被稱作根的子樹(subtree)。

樹的遞迴定義如下:(1)至少有乙個結點(稱為根)(2)其它是互不相交的子樹

1.樹的度——也即是寬度,簡單地說,就是結點的分支數。以組成該樹各結點中最大的度作為該樹的度,如上圖的樹,其度為3;樹中度為零的結點稱為葉結點或終端結點。

樹中度不為零的結點稱為分枝結點或非終端結點。除根結點外的分枝結點統稱為內部結點。

2.樹的深度——組成該樹各結點的最大層次,如上圖,其深度為4;

3.森林——指若干棵互不相交的樹的集合,如上圖,去掉根結點a,其原來的二棵子樹t1、t2、t3的集合就為森林;

4.有序樹——指樹中同層結點從左到右有次序排列,它們之間的次序不能互換,這樣的樹稱為有序樹,否則稱為無序樹。

計算機二級考試公共基礎知識

第1章資料結構與演算法 1.1 演算法的複雜度 1.演算法的基本概念 利用計算機演算法為計算機解題的過程實際上是在實施某種演算法。1 演算法的基本特徵 演算法一般具有4個基本特徵 可行性 確定性 有窮性 擁有足夠的情報。2 演算法的基本運算和操作 演算法的基本運算和操作包括 算術運算 邏輯運算 關係...

計算機二級公共基礎知識 全

1.1 演算法 考點1 演算法的基本概念 計算機解題的過程實際上是在實施某種演算法,這種演算法稱為計算機演算法。演算法 algorithm 是一組嚴謹地定義運算順序的規則,並且每乙個規則都是有效的,同時是明確的 此順序將在有限的次數後終止。演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其...

計算機二級C公共基礎知識總結

第一章資料結構與演算法 1.1 演算法 演算法 是一組有窮指令集,是解題方 而完整的描述。通俗地說,演算法就是計算機解題的過程。演算法不等於程式,也不等於計算方法,程式的編制不可能優於演算法的設計。演算法是一組嚴謹地定義運算順序的規則,每乙個規則都是有效的,且是明確的,此順序將在有限的次數下終止。所...