摘 要:隨著互聯(lián)網(wǎng)科學(xué)的進(jìn)步,人工智能在人們?nèi)粘Ia(chǎn)生活中的使用率越來越高,而這種先進(jìn)科學(xué)技術(shù)的研發(fā)主要來源于計(jì)算機(jī)科學(xué)中的數(shù)據(jù)結(jié)構(gòu)算法。本文簡要概述了計(jì)算機(jī)科學(xué)中的數(shù)據(jù)結(jié)構(gòu)類型,提出了常見的數(shù)據(jù)結(jié)構(gòu)算法,并介紹了該算法的主要應(yīng)用場景,希望為相關(guān)研究人員提供參考。
關(guān)鍵詞:計(jì)算機(jī)科學(xué);數(shù)據(jù)結(jié)構(gòu)算法;應(yīng)用場景
引言:計(jì)算機(jī)科學(xué)中的數(shù)據(jù)結(jié)構(gòu)算法指的是利用數(shù)學(xué)方法,將數(shù)據(jù)轉(zhuǎn)換為程序編碼,實(shí)現(xiàn)對系統(tǒng)的自動(dòng)化控制以解決生活中發(fā)生的問題,其算法主要應(yīng)用C語言、PAD流程圖以及N-S流程圖等進(jìn)行編譯。在計(jì)算機(jī)科學(xué)迅猛發(fā)展的時(shí)代,數(shù)據(jù)結(jié)構(gòu)與算法在各行各業(yè)得以開發(fā)應(yīng)用,為社會的進(jìn)步提供了堅(jiān)實(shí)的基礎(chǔ)理論依據(jù)。
1計(jì)算機(jī)科學(xué)中的數(shù)據(jù)結(jié)構(gòu)與形式
1.1線性結(jié)構(gòu)
計(jì)算機(jī)線性結(jié)構(gòu)的邏輯關(guān)系主要強(qiáng)調(diào)對各節(jié)點(diǎn)數(shù)據(jù)之間的順連,此類結(jié)構(gòu)常見的形式有棧、隊(duì)列、散列表等。
棧(Stack)
棧是線性結(jié)構(gòu)中一種特殊類型的表,運(yùn)用此結(jié)構(gòu)能夠在所有固定端結(jié)構(gòu)內(nèi),實(shí)現(xiàn)對數(shù)據(jù)信息節(jié)點(diǎn)的插入或刪除,在數(shù)據(jù)結(jié)構(gòu)算法上主要有進(jìn)棧與退棧兩種形式。其中在進(jìn)棧計(jì)算中,需要監(jiān)視棧的負(fù)荷程度并作出實(shí)際的狀態(tài)分析,當(dāng)TOP≥n 時(shí),需要編程師統(tǒng)計(jì)溢出數(shù)據(jù)信息,判斷出錯(cuò)位置和具體內(nèi)容,從而針對性進(jìn)行修復(fù)處理;當(dāng)TOP 隊(duì)列 隊(duì)列與棧的數(shù)據(jù)結(jié)構(gòu)狀態(tài)較為相似,只是在功能作用上只能實(shí)現(xiàn)在一端進(jìn)行插入或刪除的操作,即兩種功能需要在對立的兩個(gè)端結(jié)構(gòu)上分別得以實(shí)現(xiàn)。通常情況下隊(duì)列可以數(shù)組的形式進(jìn)行表示,會在隊(duì)列兩端形成兩種不同的指針狀態(tài),其中 head(對頭指針)與tail(對尾指針)是隊(duì)列結(jié)構(gòu)的兩個(gè)重要部分。其結(jié)構(gòu)算法需要遵循循環(huán)計(jì)算的原則,對數(shù)值進(jìn)行統(tǒng)計(jì),同時(shí)應(yīng)用隊(duì)列結(jié)構(gòu)過程中需要設(shè)置特殊節(jié)點(diǎn),并確保此節(jié)點(diǎn)上的數(shù)據(jù)域處于空放狀態(tài),并通過相關(guān)運(yùn)算將指針與表頭的數(shù)值元素相互匹配,從而形成計(jì)算公式:cq.rear=(cq.front+1)/(max+1),完成相關(guān)計(jì)算。 散列表 散列表的主要功能是能夠?qū)Y(jié)構(gòu)中的關(guān)鍵信息數(shù)據(jù)進(jìn)行儲存,從而實(shí)現(xiàn)數(shù)據(jù)信息的自動(dòng)獲取,在算法上能夠通過不同的計(jì)算方法,完成自身數(shù)據(jù)結(jié)構(gòu)的處理與調(diào)整。比如在時(shí)間、關(guān)鍵信息詞條長度、詞條分布條件等,會有一定的范圍取值,從而能夠自動(dòng)對運(yùn)算條件作出調(diào)整,產(chǎn)生較為合理的計(jì)算效果。 1.2非線性結(jié)構(gòu) 計(jì)算機(jī)非線性結(jié)構(gòu)主要作用是在各數(shù)據(jù)連接節(jié)點(diǎn)間,維持?jǐn)?shù)據(jù)之間的對應(yīng)關(guān)系,常見的結(jié)構(gòu)形式有數(shù)組、樹。 數(shù)組(Array) 數(shù)組能夠?qū)?shù)據(jù)中相同形式的變量按照一定的邏輯順序進(jìn)行排列組合,此類數(shù)據(jù)結(jié)構(gòu)一般多用于編程語言領(lǐng)域,可按數(shù)據(jù)元素的特征光劃分為如整數(shù)、字符等類型。應(yīng)用此結(jié)構(gòu)進(jìn)行計(jì)算時(shí),需要將特定的參數(shù)信息設(shè)置在變體數(shù)據(jù)中,以數(shù)組元素閾值列表的形式存在。若在經(jīng)計(jì)算過程中并沒有對相關(guān)參數(shù)進(jìn)行處理,極易會在在算法中形成零長度數(shù)組。 樹(Tree) 樹結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)中最為典型的非線性結(jié)構(gòu),其邏輯結(jié)構(gòu)是包含n個(gè)結(jié)點(diǎn)的有窮集合K(n>0),并滿足有且僅有一個(gè)結(jié)點(diǎn)k0∈K的條件。利用樹結(jié)構(gòu)進(jìn)行分析計(jì)算,需要在無前驅(qū)節(jié)點(diǎn)的狀態(tài)下,保證此節(jié)點(diǎn)的形態(tài),與此同時(shí),能夠利用這一計(jì)算條件,將樹結(jié)構(gòu)各二次分支節(jié)點(diǎn)處的根節(jié)點(diǎn)數(shù)據(jù),統(tǒng)一集中該節(jié)點(diǎn)數(shù)據(jù)上,并將數(shù)據(jù)節(jié)點(diǎn)作為樹結(jié)構(gòu)的前驅(qū)節(jié)點(diǎn)進(jìn)行相關(guān)計(jì)算[1]。 2計(jì)算機(jī)科學(xué)中常見的數(shù)據(jù)結(jié)構(gòu)算法 2.1遞推法 遞推法是數(shù)據(jù)結(jié)構(gòu)算法中較為常見的算法之一,需要經(jīng)過逐級推導(dǎo)過程才能輸出最后的計(jì)算結(jié)果。計(jì)算機(jī)科學(xué)邏輯性較強(qiáng),因此需要利用遞推法中的推導(dǎo)公式,將各類數(shù)據(jù)數(shù)值、形式等進(jìn)行細(xì)分,然后推出程序編程的結(jié)果項(xiàng),即通過枝節(jié)數(shù)據(jù)推導(dǎo)出數(shù)列的通項(xiàng),方便對數(shù)據(jù)的檢驗(yàn)與判斷。 遞推法最為常見的特點(diǎn)是能夠達(dá)到將數(shù)據(jù)由簡單到復(fù)雜層層推理的目的,利用此方法得到數(shù)列,即可將相關(guān)數(shù)據(jù)帶入到數(shù)列中,從而對其推理的正確與否進(jìn)行驗(yàn)算。在計(jì)算機(jī)科學(xué)中應(yīng)用這一方法,能夠?qū)⒋罅壳覐?fù)雜的數(shù)據(jù)信息分類整理,使計(jì)算過程簡單化,此種方法在解決生活中實(shí)際問題的編程中比較常見。 2.2迭代法 迭代法一般多被應(yīng)用于解決較為繁瑣且結(jié)構(gòu)枝節(jié)較多的實(shí)際問題。此種方法的計(jì)算原理是將較為復(fù)雜的結(jié)構(gòu)算法與結(jié)構(gòu)簡單的算法進(jìn)行等價(jià)處理,從而將復(fù)雜的問題簡單化,來求解最終的結(jié)果。由此我們可以看出迭代法的計(jì)算過程比較模糊,因此其結(jié)果的輸出缺乏一定的精準(zhǔn)性,不適合應(yīng)用于結(jié)果較為精確的數(shù)值型數(shù)據(jù)的計(jì)算,而更適用于解決理論或文字較為復(fù)雜的問題。 2.3枚舉法 枚舉法多用于解決判斷類問題如“此方案是否可行”、“綜合比較來看”、“此種做法是否正確”等具有分析判斷過程的情形。應(yīng)用此類算法的思路是,第一,分析問題結(jié)構(gòu),劃定問題范疇;第二,判斷采用哪一種列舉法對問題進(jìn)行列舉;第三,根據(jù)列舉類型檢驗(yàn)問題計(jì)算的可行性;第四,正式算出計(jì)算的結(jié)果。此種方法最大的優(yōu)勢在于其計(jì)算步驟較為清晰,當(dāng)編程人員編碼時(shí),不會造成邏輯混亂,使結(jié)果誤差加大。 3數(shù)據(jù)結(jié)構(gòu)算法的應(yīng)用場景 3.1追蹤被盜物品 公安系統(tǒng)可利用計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)算法,對特定情形的疑犯追蹤、失物尋找等創(chuàng)造先進(jìn)的破案工具。當(dāng)前蘋果手機(jī)與我國的華為均支持定位追蹤功能,若丟失物件中有這兩種手機(jī),即可為案件破解提供較大的希望。比如某計(jì)算機(jī)教授在國外度假時(shí),即利用計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)算法與當(dāng)?shù)鼐煅杆僬一亓吮槐I車輛。事情發(fā)生時(shí),失主將帶有追蹤功能的華為手機(jī)遺落在車上,然后通過登錄Mazda Mobile Start (MMS)APP系統(tǒng),實(shí)現(xiàn)了對丟失車輛進(jìn)行GPS定位跟蹤,幫助其找到了丟失車輛的停車地點(diǎn),與當(dāng)?shù)鼐旌狭せ亓藖G失車輛,這一現(xiàn)實(shí)中切實(shí)發(fā)生的案例,為我國公安系統(tǒng)辦案提供了新的途徑。 3.2美顏功能 手機(jī)與計(jì)算機(jī)上的圖像處理功能如PS或美顏相機(jī)等,就是在計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)算法的基礎(chǔ)上,所開發(fā)的視頻圖像處理技術(shù)。隨著計(jì)算機(jī)網(wǎng)絡(luò)的進(jìn)一步優(yōu)化與升級,當(dāng)前人們在使用各類美顏軟件時(shí),系統(tǒng)就會經(jīng)過編程信息實(shí)現(xiàn)對人臉、身體的智能識別,然后可實(shí)現(xiàn)對圖片進(jìn)行瘦臉、瘦身、化妝等操作,同時(shí)經(jīng)過算法的不斷優(yōu)化,能夠達(dá)到美顏程度進(jìn)行調(diào)節(jié)的目的,大幅提升了軟件的適用性。 3.3大數(shù)據(jù)云計(jì)算 大數(shù)據(jù)時(shí)代下,云計(jì)算已經(jīng)成為了各行各業(yè)必不可少的信息化應(yīng)用技術(shù),能夠?qū)?shù)據(jù)進(jìn)行自動(dòng)化儲存與運(yùn)算;數(shù)據(jù)結(jié)構(gòu)算法在網(wǎng)絡(luò)技術(shù)的加持下,可促使運(yùn)算效率與質(zhì)量更加穩(wěn)定可靠,同時(shí)也能夠拓寬數(shù)據(jù)儲存的能力,以此來滿足不同用戶對數(shù)據(jù)的差異化需求。 結(jié)論:綜上所述,計(jì)算機(jī)科學(xué)中的數(shù)據(jù)結(jié)構(gòu)與算法是支撐其不斷創(chuàng)新進(jìn)步的基礎(chǔ)知識之一,能夠?qū)?shù)據(jù)進(jìn)行整合,相關(guān)知識對計(jì)算機(jī)技術(shù)的完善與發(fā)展起著積極的促進(jìn)作用。相關(guān)人員在今后的學(xué)習(xí)與研究過程中,應(yīng)充分理解并掌握關(guān)于數(shù)據(jù)結(jié)構(gòu)算法的基礎(chǔ)常識,為探尋算法的復(fù)雜度與深?yuàn)W性奠定基礎(chǔ),并基于數(shù)據(jù)結(jié)構(gòu)算法的相關(guān)特征,切實(shí)發(fā)揮自身創(chuàng)新精神,為算法學(xué)習(xí)的應(yīng)用創(chuàng)造新的思路。 參考文獻(xiàn): [1]李丹,蘇天路.計(jì)算機(jī)算法設(shè)計(jì)及數(shù)據(jù)結(jié)構(gòu)離散性研究[J].現(xiàn)代信息科技,2019,3(22):89-91. [2]柳倩倩.現(xiàn)代計(jì)算機(jī)常用數(shù)據(jù)結(jié)構(gòu)和算法分析[J].花炮科技與市場,2019(04):10-11. 作者簡介: 楊世豪,男,漢,1997.12.23,籍貫:河南省禹州市,河南大學(xué),計(jì)算機(jī)與信息工程學(xué)院,專業(yè):軟件工程,學(xué)歷:本科,職稱:學(xué)生,單位所在省市:河南省 開封市,單位郵編:475000。