資料結構學習些什麼內容,學習資料結構有什麼意義,有哪些運用

2021-03-20 02:46:19 字數 4912 閱讀 1011

1樓:宇文鴻彥

資料結構學習的內容可以去百度。

作為一個已經進入公司程式設計師,我來告訴你學習資料結構有什麼用。

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。資料結構在程式設計中的重要作用具體表現在:

1、資料結構是一門綜合性較強的計算機軟體、程式設計理論和技術相結合的重要基礎知識。它主要討論抽象資料關係和演算法在計算機中的表示與實現,涉及到的資料在計算機中的表示、組織和處理 ,以及相應結構上的演算法設計和演算法效能上的分析技術。它所包含的知識與提倡的技術方法 ,無論對大家進一步學習計算機領域裡的其他知識 ,還是對今後從事理論研究、應用開發及技術管理工作都起著重要的作用。

2、學習資料結構目的與要求是學會從問題入手 ,分析和研究計算機加工的資料結構特性 ,使大家能夠為他們應用的資料選擇適當的邏輯結構、儲存結構及其相應的操作演算法 ,並初步掌握演算法的效能分析技術。同時 ,學習中還要進行復雜的程式設計訓練 ,也培養了大家資料抽象能力、演算法構造性思維方法能力及邏輯思維能力 ,這些能力也是軟體系統開發過程中非常重要的一種創造性思維活動。

3、資料結構和程式設計語言本身雖然沒有多大的聯絡 ,但資料結構是一種抽象資料 ,是實用程式語言去描述資料結構 ,通過程式設計語言可以將它在計算機中進行實現。學會了資料結構,就會用所學知識對實踐任務進行充分分析、抽象 ,建立與之相適應的模式 ,使問題最終在計算機上得以實現。在這個過程中 ,大家不僅對所學知識加深了理解 ,更重要的是培養了大家分析問題、解決問題的能力 ,這對充分發揮大家的實踐能力、創造能力起著重要的作用 ,也提高大家演算法設計和程式設計能力。

所以說,資料結構在軟體程式設計中有著舉足輕重的作用,可以說一個系統的工程離不開資料結構的支援。一個優秀的軟體開發人員,資料結構是其必備的基礎知識。

學習資料結構的目的是什麼?有什麼好處?為哪些課程做準備?

2樓:風扇一直響

計算機核心課程,程式=演算法+資料結構,資料結構的重要性可見一斑。事實上,想要寫出優美高效的**,資料結構的知識一定要有的,學習的過程中更重要的是去理解它的思想。

感覺能用到程式的課程都離不開資料結構,像軟體工程,作業系統等等

學習資料結構的作用到底有什麼好處?請舉個例子說明使用資料結構的方便性!謝謝!

3樓:軍

如果把語言比做武功的招式

那麼就可以把資料結構比做內功

lz自己體會吧

4樓:匿名使用者

比如遊戲製作中,有一個npc,那麼可以這樣定義他/她:

typedef struct _npc01npc01, *lpnpc01;

使用:npc01 npc;

npc.szname = l"楊過";

npc.bgender = 0;//0表示男,1表示女。這個是自己定義的

npc.dwplace = 23001;//某一個地圖的idnpc.dwposition = makeword(1012,2033);//座標

...好了,就寫這麼多,隨便寫的一個例子,沒有很大意義,不過記住,win32的很多地方,或者說80%以上的地方,都使用了資料結構,可想而知它的重要性。

求: 誰能告訴我學習資料結構在工作中有什麼實際意義嗎,{舉列說明下吧}?

5樓:匿名使用者

資料結構可以看作是建築中的磚瓦木料鋼筋之類的基本建築材料,由它們構成每一間屋子,再由屋子構成整棟大樓。只有瞭解了基本建築材料的效能,才能根據需求靈活地應用它們建造出合適的屋子和大樓。在程式設計中,資料結構就類似於基本建築材料,功能模組就類似於屋子,整個系統就類似於整棟大樓。

正確地應用資料結構,可以節省空間和時間,編出小巧高效的程式來。

6樓:匿名使用者

對於沒有資料結構方面的api的程式語言來說,學習資料結構能幫助你設計演算法的資料儲存方式。對於提供資料結構方面api的程式語言來說,學習資料結構能幫助你瞭解api的實現方式,選擇更適用你自己程式的api

學習演算法和資料結構有什麼用

7樓:du知道君

本人乃一個資料痴迷者,在計算機的道路上,也是一個資料結構的痴迷者,現在大學裡面和同學搞開發也痴迷於資料庫,我就我個人的理解給你談一談:

首先,資料結構是一門計算機語言學的基礎學科,它不屬於任何一門語言,其體現的是幾乎所有標準語言的演算法的思想。

上面的概念有一些模糊,我們現在來具體說一說,相信你門的資料結構使用的是一門具體的語言比如c/c++語言來說明,那是為了輔助的學習資料結構,而資料結構本身不屬於任何語言(相信你把書上的程式敲到電腦裡面是不能通過的吧,其只是描述了過程,要除錯程式,還需要修改和增加一些東西)。你們的書上開始應該在講究資料的物理儲存結構/邏輯儲存結構等概念,說明資料結構首先就是「資料的結構」,在記憶體上的儲存方式,就是物理的儲存結構,在程式使用人員的思想上它是邏輯的,比如:

你們在c/c++中學習到連結串列,那麼連結串列是什麼一個概念,你們使用指標制向下一個結點的首地址,讓他們串聯起來,形成一個接一個的結點,就像顯示生活中的火車一樣。而這只是對於程式設計師的概念,但是在記憶體中儲存的方式是怎樣的那?對於你程式設計師來說這是「透明」的,其內部分配空間在那裡,都是隨機的,而記憶體中也沒有一個又一根的線將他們串聯起來,所以,這是一個物理與邏輯的概念,對於我們程式設計師只需要知道這些就可以了,而我們主要要研究的是「邏輯結構」。

我可以給你一個我自己總結的一個概念:所有的演算法必須基於資料結構生存。也就是說,我們對於任何演算法的編寫,必須依賴一個已經存在的資料結構來對它進行操作,資料結構成為演算法的操作物件,這也是為什麼演算法和資料結構兩門分類不分家的概念,演算法在沒有資料結構的情況下,沒有任何存在的意義;而資料結構沒有演算法就等於是一個屍體而沒有靈魂。

估計這個對於演算法的初學者可能有點暈,我們在具體的說一些東西吧:

我們在資料結構中最簡單的是什麼:我個人把書籍中線性表更加細化一層(這裡是為了便於理解在這樣說的):單個元素,比如:

int i;這個i就是一個資料結構,它是一個什麼樣的資料結構,就是一個型別為int的變數,我們可以對它進行加法/減法/乘法/除法/自加等等一系列操作,當然對於單個元素我們對它的資料結構和演算法的研究沒有什麼意義,因為它本來就是原子的,某些具體運算上可能演算法存在比較小的差異;而提升一個層次:就是我們的線性表(一般包含有:順序表/連結串列)那麼我們研究這樣兩種資料結構主要就是要研究它的什麼東西那?

一般我們主要研究他們以結構為單位(就是結點)的增加/刪除/修改/檢索(查詢)四個操作(為什麼有這樣的操作,我在下面說到),我們一般把「增加/刪除/修改」都把它稱為更新,對於一個結點,若要進行更新一類的操作比如:刪除,對於順序表來說是使用下標訪問方式,那麼我們在刪除了一個元素後需要將這個元素後的所有元素後的所有元素全部向前移動,這個時間是對於越長的順序表,時間越長的,而對於連結串列,沒有順序的概念,其刪除元素只需要將前一個結點的指標指向被刪除點的下一個結點,將空間使用free()函式進行釋放,還原給作業系統。當執行檢索操作的時候,由於順序表直接使用下標進行隨機訪問,而連結串列需要從頭開始訪問一一匹配才可以得到使用的元素,這個時間也是和連結串列的結點個數成正比的。

所以我們每一種資料結構對於不同的演算法會產生不同的效果,各自沒有絕對的好,也沒有絕對的不好,他們都有自己的應用價值和方式;這樣我們就可以在實際的專案開發中,對於內部的演算法時間和空間以及專案所能提供的硬體能力進行綜合評估,以讓自己的演算法能夠更加好。

(在這裡只提到了基於資料結構的一個方面就是:速度,其實演算法的要素還應該包括:穩定性、健壯性、正確性、有窮性、可理解性、有輸入和輸出等等)

為什麼要以結點方式進行這些亂七八糟的操作那?首先明確一個概念就是:對於過程化程式設計語言所提供的都是一些基礎第一資訊,比如一些關鍵字/保留字/運算子/分界符。

而我們需要用程式解決現實生活中的問題,比如我們要程式記錄某公司人員的情況變化,那麼人員這個資料型別,在程式設計語言中是沒有的,那麼我們需要對人員的內部資訊定義(不可能完全,只是我們需要那些就定義那些),比如:年齡/性別/姓名/出生日期/民族/工作單位/職稱/職務/工資狀態等,那麼就可以用一些c/c++語言描述了,如年齡我們就可以進行如下定義:

int age;/*age變數,表示人員公司人員的年齡*/

同理進行其他的定義,我們用結構體或類把他們封裝成自定義資料型別或類的形式,這樣用他們定義的就是一個人的物件的了,它內部包含了很多的模板資料了。

我就我個人的經歷估計的**量應該10000以內的(我個人的經理:只是建議,從你的第一行**開始算,不論程式正確與否,不論那一門語言,作為一個標準程式設計師需要十萬行的**的功底(這個是我在大學二年級感覺有一定時候的大致資料,不一定適合其他人),而十萬行**功底一般需要四門基礎遠支撐,若老師沒有教,可以自學一些語言)。

學資料結構有什麼用?

8樓:

在許多型別的程式的設計中,資料結構的選擇是一個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴於是否選擇了最優的資料結構。

許多時候,確定了資料結構後,演算法就容易得到了。有些時候事情也會反過來,我們根據特定演算法來選擇資料結構與之適應。不論哪種情況,選擇合適的資料結構都是非常重要的。

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

學資料結構有什麼用

學習資料結構有什麼好處,對程式設計有什麼促進作用?

9樓:偷星

資料結構的理論性很強,因為他提供的是一種程式設計的思想方法,很多演算法都是這麼歸納出來的,比如說圖論裡的spf迪傑斯特拉,mst的普里姆和克魯斯卡爾都是這麼出來的。至於說的資料結構的話像棧、佇列、連結串列,我的個人建議是單連結串列你最好學著自己寫,雙連結串列的話能寫出來最好,不能寫的話,就去學一下c++stl(標準模板庫)的一些容器裡面有棧,佇列,集合,對映等等,都是能現成呼叫的,但是基本概念得知道。其實學習acm的話或許你的實戰經驗會強一些。

資料結構主要學什麼內容資料結構學習些什麼內容,學習資料結構有什麼意義,有哪些運用

一 線性表 一 線性表的定義和基本操作 二 線性表的實現 1.順序儲存結構 2.鏈式儲存結構 3.線性表的應用 二 棧 佇列和陣列 一 棧和佇列的基本概念 二 棧和佇列的順序儲存結構 三 棧和佇列的鏈式儲存結構 四 棧和佇列的應用 五 特殊矩陣的壓縮儲存 三 樹與二叉樹 一 樹的概念 二 二叉樹 1...

求資料結構學習與實驗指導 C語言版

想買書,上當當網,可以貨到付款。求資料結構教程 第5版 上機實驗題參 李春葆 第一題 第二題 第三題 第四題 第五題 第六題 資料的邏輯結構和物理結構是資料結構的兩個密切相關的方面,同一邏輯結構可以對應不同的儲存結構。演算法的設計取決於資料的邏輯結構,而演算法的實現依賴於指定的儲存結構。資料結構的研...

資料結構這門課的學習方法怎樣學好資料結構這門課?

你好,我是學計算機的 資料結構一般會有一門計算機語言課作為先修課,比如c,pascal等,然後以語言實現為輔助進行講解,既然你學的是應用數學,應該至少學過一門語言吧?如果沒有的話也沒關係,找一本書來看看,看懂基本的語法就行 幫助理解 考研一般不考用語言去實現 對於考研來說,主要是理論考試,資料結構的...