a剧情麻豆映画国产在线-a码片全部免费无码播放-a毛a毛片无码不卡无码一级-a毛看片免费观看视频-a毛片基地免费全部视频-a毛片全部免费播放

微信公眾號
手機網站
微信小程序
咨詢電話: 4006-010-699(工作日8:30-17:30) 請登錄 注冊
聯系我們
聯系人:王秀秀
010 -66083178
www.ruansai.cn 
北京市西城區廣安門
內廣義街5號廣益大廈
大賽作品詳情
棧及其的應用
Loading...

作品名稱:棧及其的應用
學校名稱:西京學院
參賽隊伍:樸實的課堂
參賽老師:張玉成  

詳細說明

1.定義

數據結構名詞定義

數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成。記為:

Data_Structure=(D,R)

其中D是數據元素的集合R是該集合中所有元素之間的關系的有限集合 [2] 

數據結構其它定義

Sartaj Sahni在他的《數據結構、算法與應用》一書中稱:數據結構是數據對象,以及存在于該對象的實例和組成實 例的數據元素之間的各種聯系。這些聯系可以通過定義相關的函數來給出。他將數據對象(data object)定義為一個數據對象是實例或值的集合

Clifford A.Shaffer在《數據結構與算法分析》一書中的定義是:數據結構是ADT抽象數據類型Abstract Data Type 的物理實現。

數據結構具體指同一類數據元素中,各元素之間的相互關系,包括三個組成成分,數據的邏輯結構數據的存儲結構和數據運算結構。

2.數據結構研究對象

1)數據的邏輯結構:指反映數據元素之間的邏輯關系的數據結構,其中的邏輯關系是指數據元素之間的前后件關系,而與他們在計算機中的存儲位置無關。邏輯結構包括:

集合

數據結構中的元素之間除了同屬一個集合的相互關系外,別無其他關系;

線性結構

數據結構中的元素存在一對一的相互關系;

樹形結構

數據結構中的元素存在一對多的相互關系;

圖形結構

數據結構中的元素存在多對多的相互關系。

2)數據的物理結構:指數據的邏輯結構在計算機存儲空間的存放形式。 [1] 

數據的物理結構是數據結構在計算機中的表示(又稱映像),它包括數據元素的機內表示和關系的機內表示。由于具體實現的方法有順序、鏈接、索引、散列等多種,所以,一種數據結構可表示成一種或多種存儲結構。

數據元素的機內表示(映像方法): 用二進制位(bit)的位串表示數據元素。通常稱這種位串為節點(node)。當數據元素有若干個數據項組成時,位串中與個數據項對應的子位串稱為數據域(data field)。因此,節點是數據元素的機內表示(或機內映像)。

關系的機內表示(映像方法):數據元素之間的關系的機內表示可以分為順序映像和非順序映像,常用兩種存儲結構:順序存儲結構和鏈式存儲結構。順序映像借助元素在存儲器中的相對位置來表示數據元素之間的邏輯關系。非順序映像借助指示元素存儲位置的指針(pointer)來表示數據元素之間的邏輯關系。

3.數據結構重要意義

一般認為,一個數據結構是由數據元素依據某種邏輯聯系組織起來的。對數據元素間邏輯關系的描述稱為數據的邏輯結構;數據必須在計算機內存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據上執行的運算才有意義。一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率。

在許多類型的程序的設計中,數據結構的選擇是一個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴于是否選擇了最優的數據結構。許多時候,確定了數據結構后,算法就容易得到了。有些時候事情也會反過來,我們根據特定算法來選擇數據結構與之適應。不論哪種情況,選擇合適的數據結構都是非常重要的。

選擇了數據結構,算法也隨之確定,是數據而不是算法是系統構造的關鍵因素。這種洞見導致了許多種軟件設計方法和程序設計語言的出現,面向對象的程序設計語言就是其中之一。

4.數據結構研究內容

在計算機科學中,數據結構是一門研究非數值計算的程序設計問題中計算機的操作對象(數據元素)以及它們之間的關系和運算等的學科,而且確保經過這些運算后所得到的新結構仍然是原來的結構類型。

數據結構作為一門獨立的課程在國外是從1968年才開始設立的。 1968年美國唐納德·克努特(Donald Ervin Knuth)教授開創了數據結構的最初體系,他所著的《計算機程序設計藝術》第一卷《基本算法》是第一本較系統地闡述數據的邏輯結構和存儲結構及其操作的著作。數據結構在計算機科學中是一門綜合性的專業基礎課,數據結構是介于數學、計算機硬件和計算機軟件三者之間的一門核心課程。數據結構這一門課的內容不僅是一般程序設計(特別是非數值性程序設計)的基礎,而且是設計和實現編譯程序、操作系統、數據庫系統及其他系統程序的重要基礎。

計算機科學是一門研究用計算機進行信息表示和處理的科學。這里面涉及到兩個問題:信息的表示,信息的處理

而信息的表示和組織又直接關系到處理信息的程序的效率。隨著計算機的普及,信息量的增加,信息范圍的拓寬,使許多系統程序和應用程序的規模很大,結構又相當復雜。因此,為了編寫出一個的程序,必須分析待處理的對象的特征及各對象之間存在的關系,這就是數據結構這門課所要研究的問題。眾所周知,計算機的程序是對信息進行加工處理。在大多數情況下,這些信息并不是沒有組織,信息(數據)之間往往具有重要的結構關系,這就是數據結構的內容。數據的結構,直接影響算法的選擇和效率。

計算機解決一個具體問題時,大致需要經過下列幾個步驟:首先要從具體問題中抽象出一個適當的數學模型,然后設計一個解此數學模型的算法Algorithm),最后編出程序、進行測試、調整直至得到最終解答。

尋求數學模型的實質是分析問題,從中提取操作的對象,并找出這些操作對象之間含有的關系,然后用數學的語言加以描述。當人們用計算機處理數值計算問題時,所用的數學模型是用數學方程描述。所涉及的運算對象一般是簡單的整形、實型和邏輯型數據,因此程序設計者的主要精力集中于程序設計技巧上,而不是數據的存儲和組織上。然而,計算機應用的更多領域是非數值型計算問題,它們的數學模型無法用數學方程描述,而是用數據結構描述,解決此類問題的關鍵是設計出合適的數據結構,描述非數值型問題的數學模型是用線性表、樹、圖等結構來描述的。

計算機算法與數據的結構密切相關,算法無不依附于具體的數據結構,數據結構直接關系到算法的選擇和效率。運算是由計算機來完成,這就要設計相應的插入、刪除和修改的算法 。也就是說,數據結構還需要給出每種結構類型所定義的各種運算的算法。

數據是信息的載體,是可以被計算機識別存儲并加工處理的描述客觀事物的信息符號的總稱。所有能被輸入計算機中,且能被計算機處理的符號的集合,它是計算機程序加工處理的對象。客觀事物包括數值、字符、聲音、圖形、圖像等,它們本身并不是數據,只有通過編碼變成能被計算機識別、存儲和處理的符號形式后才是數據。

數據元素是數據的基本單位,在計算機程序中通常作為一個整體考慮。一個數據元素由若干個數據項組成。數據項是數據結構中討論的最小單位。有兩類數據元素:若數據元素可再分,則每一個獨立的處理單元就是數據項,數據元素是數據項的集合;若數據元素不可再分,則數據元素和數據項是同一概念,如:整數"5",字符 "N" 等。例如描述一個學生的信息的數據元素可由下列6個數據項組成。其中的出生日期又可以由三個數據項:""""""組成,則稱"出生日期"為組合項,而其它不可分割的數據項為原子項。

關鍵字指的是能識別一個或多個數據元素的數據項。若能起唯一識別作用,則稱之為 "" 關鍵字,否則稱之為 "" 關鍵字。

數據對象是性質相同的數據元素的集合,是數據的一個子集。數據對象可以是有限的,也可以是無限的。

數據處理是指對數據進行查找插入、刪除、合并、排序、統計以及簡單計算等的操作過程。在早期,計算機主要用于科學和工程計算,進入八十年代以后,計算機主要用于數據處理。據有關統計資料表明,計算機用于數據處理的時間比例達到80%以上,隨著時間的推移和計算機應用的進一步普及,計算機用于數據處理的時間比例必將進一步增大。

5.數據結構結構分類

數據結構是指同一數據元素類中各數據元素之間存在的關系。數據結構分別為邏輯結構存儲結構物理結構)和數據的運算。數據的邏輯結構是從具體問題抽象出來的數學模型,是描述數據元素及其關系的數學特性的,有時就把邏輯結構簡稱為數據結構。邏輯結構是在計算機存儲中的映像,形式地定義為(KR)(或(DS)),其中,K是數據元素的有限集,RK上的關系的有限集。

根據數據元素間關系的不同特性,通常有下列四類基本的結構: ⑴集合結構。該結構的數據元素間的關系是屬于同一個集合 ⑵線性結構。該結構的數據元素之間存在著一對一的關系。 ⑶樹型結構。該結構的數據元素之間存在著一對多的關系。 ⑷圖形結構。該結構的數據元素之間存在著多對多的關系,也稱網狀結構。 從上面所介紹的數據結構的概念中可以知道,一個數據結構有兩個要素。一個是數據元素的集合,另一個是關系的集合。在形式上,數據結構通常可以采用一個二元組來表示。

數據結構的形式定義為:數據結構是一個二元組 Data_Structure=DR),其中,D是數據元素的有限集,RD上關系的有限集。線性結構的特點是數據元素之間是一種線性關系,數據元素一個接一個的排列。在一個線性表數據元素的類型是相同的,或者說線性表是由同一類型的數據元素構成的線性結構。在實際問題中線性表的例子是很多的,如學生情況信息表是一個線性表:表中數據元素的類型為學生類型; 一個字符串也是一個線性表:表中數據元素的類型為字符型,等等。

線性表是最簡單、最基本、也是最常用的一種線性結構。 線性表是具有相同數據類型的n(n>=0)個數據元素的有限序列,通常記為: (a1a2… ai-1aiai+1…an) ,其中n為表長, n=0 時稱為空表。 它有兩種存儲方法:順序存儲和鏈式存儲,它的主要基本操作是插入、刪除和檢索等。

數據結構在計算機中的表示(映像)稱為數據的物理(存儲)結構。它包括數據元素的表示和關系的表示。數據元素之間的關系有兩種不同的表示方法:順序映象和非順序映象,并由此得到兩種不同的存儲結構:順序存儲結構和鏈式存儲結構

順序存儲方法:它是把邏輯上相鄰的結點存儲在物理位置相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常借助于程序設計語言中的數組來實現。

鏈接存儲方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針字段表示的。由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常借助于程序設計語言中的指針類型來實現

索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址

散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。

數據結構中,邏輯上(邏輯結構:數據元素之間的邏輯關系)可以把數據結構分成線性結構和非線性結構。線性結構的順序存儲結構是一種順序存取的存儲結構,線性表的鏈式存儲結構是一種隨機存取的存儲結構。線性表若采用鏈式存儲表示時所有結點之間的存儲單元地址可連續可不連續。邏輯結構與數據元素本身的形式、內容、相對位置、所含結點個數都無關。

6.數據結構結構算法

算法的設計取決于數據(邏輯)結構,而算法的實現依賴于采用的存儲結構。數據的存儲結構實質上是它的邏輯結構在計算機存儲器中的實現,為了全面的反映一個數據的邏輯結構,它在存儲器中的映象包括兩方面內容,即數據元素之間的信息和數據元素之間的關系。不同數據結構有其相應的若干運算。數據的運算是在數據的邏輯結構上定義的操作算法,如檢索、插入、刪除、更新和排序等。

數據的運算是數據結構的一個重要方面,討論任一種數據結構時都離不開對該結構上的數據運算及其實現算法的討論。

數據結構不同于數據類型,也不同于數據對象,它不僅要描述數據類型的數據對象,而且要描述數據對象各元素之間的相互關系。

數據類型是一個值的集合和定義在這個值集上的一組操作的總稱。數據類型可分為兩類:原子類型、結構類型。一方面,在程序設計語言中,每一個數據都屬于某種數據類型。類型明顯或隱含地規定了數據的取值范圍、存儲方式以及允許進行的運算。可以認為,數據類型是在程序設計中已經實現了的數據結構。另一方面,在程序設計過程中,當需要引入某種新的數據結構時,總是借助編程語言所提供的數據類型來描述數據的存儲結構。

計算機中表示數據的最小單位是二進制數的一位,叫做位。我們用一個由若干位組合起來形成的一個位串表示一個數據元素,通常稱這個位串為元素或結點。當數據元素由若干數據項組成時,位串中對應于各個數據項的子位串稱為數據域。元素或結點可看成是數據元素在計算機中的映象。

一個軟件系統框架應建立在數據之上,而不是建立在操作之上。一個含抽象數據類型的軟件模塊應包含定義、表示、實現三個部分。

7.數據結構常用結構

1)數據結構數組

在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱為數組。在C語言中, 數組屬于構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字符數組、指針數組、結構數組等各種類別。

2)數據結構棧

是只能在某一端插入和刪除的特殊線性表。它按照先進后出的原則存儲數據,先進入的數據被壓入棧底,最后的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最后一個數據被第一個讀出來)。

3)數據結構隊列

一種特殊的線性表,它只允許在表的前端front)進行刪除操作,而在表的后端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列是按照先進先出后進后出的原則組織數據的。隊列中沒有元素時,稱為空隊列。

4)數據結構鏈表

是一種物理存儲單元上非連續、非順序的存儲結構,它既可以表示線性結構,也可以用于表示非線性結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。

5)數據結構樹

是包含nn>0)個結點的有窮集合K,且在K中定義了一個關系NN滿足 以下條件:

有且僅有一個結點 K0,他對于關系N來說沒有前驅,稱K0為樹的根結點。簡稱為根(root)。  2)除K0外,K中的每個結點,對于關系N來說有且僅有一個前驅。

K中各結點,對關系N來說可以有m個后繼(m>=0)。

6)數據結構圖

圖是由結點的有窮集合V和邊的集合E組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關系。

7)數據結構堆

在計算機科學中,堆是一種特殊的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。

8)數據結構散列表

若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關系f為散列函數(Hash function),按這個思想建立的表為散列表


找人才
千校人才小程序
找工作
萬企崗位小程序
一鍵咨詢
注冊簡歷
查詢
資料下載
返回頂部
主站蜘蛛池模板: 井上真央av| 女人久久久女女女人| 玖玖精品视频| 成人亚洲A片V一区二区中出片| 成人av毛片无码免费网站| 欧美日韩一区二区三区四| 嫩草AV久久伊人妇女超级A| 风间由美性色一区二区三区| 人妻少妇精品无码专区| 欧美精品一卡二卡| 丁香花综合在线| 欧美色综合天天久久综合精品 | 亚洲欧美日韩自偷自拍| 国产在线观看免费视频在线| 国偷自产一区二视频观看| 亚洲欧美一区二区日韩精品| 精品伊人久久久久网站| 国产午夜精品久久久久免费视| 亚洲第一免费播放区| 亚洲欧美视频一区二区| 国产精品一二三四区免费| 四虎官方影库首页| 日本韩国| 国产成人午夜精品影院| 日本天天综合网| 人人爽天天碰狠狠添| 传媒精品国产av| 欧美精品免费观| 国产第一页浮力影院草草影视| av一区二区三区高清久久| 久久天天躁日日躁狠狠躁| 亚洲av一二三区成人影片| 精品人妻午夜一区二区三区四| 精品日本永久免费网站| 一级毛片在线视频| 玖欧美性生交XXXXX无码| 国产午夜高潮熟女精品AV| 亚洲AV久久无码精品国产网站| aaaa级特黄毛片| 国产精品久久久久久久久动漫 | 96亚洲精华国产精华精华液|