學資料結構和演算法之前要先學什麼,學習資料結構需要先學習什麼科目?求指導

2021-03-03 20:45:32 字數 2868 閱讀 5351

1樓:匿名使用者

不需要其他的了,因為資料結構跟c一樣也是一麼基礎課,學了他是為後期學其他課程作準備的,如編譯原理!!!

數學分析暫時還用不著但是可以鍛鍊思維能力!!

資料結構裡的內容跟離散數學關係很大,比如圖,等等!!

必須把離散學好!!

2樓:匿名使用者

具備c語言或c++等基本的程式設計知識,其中指標的概念一定要清晰明瞭。

最好能學習一些離散數學的知識。

對計算機的工作原理有一定的認識,主要是堆疊、記憶體管理的一些知識。

學資料結構和演算法之前要先學什麼?

3樓:碼寶寶呀

很顯然你首先需要會一門程式語言。資料結構可以在不同的語言下實現,你可以看常用的資料結構教材,有的基於c,有的基於java,所以在學習資料結構與演算法之前,先學會一門語言是很有必要的事情。

因為資料結構書中很多內容用到的都是c語言偽**,如果不懂c語言的話應該是看不懂的。多瞭解一下點c語言、資料型別、迴圈分支、結構體、指標等基本知識。一般來說,學習完c語言之後,效率會比較高點,另外數學好的話對理解演算法是有好處的,動態規劃啊,決策樹啊之類的,具體的知識可以去小碼哥李明傑瞭解。

因為資料結構是需要程式設計實現的。在內容上,資料結構很大一部分是獨立的,但也有一部分與其它課程有關,比如離散數學,線性代數等,不過也沒多大影響,書上都帶有詳細介紹。資料結構理論性很強,需要多動手寫**,理解好原理,而且會程式設計實現,這兩方面都很重要。

4樓:匿名使用者

學習演算法和資料結構就是把你的程式執行速度變得更快,記憶體需求變得更小,**長度變得更短。正式進入資料結構和演算法前需要了解下c++記憶體的那些事。

在c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。

棧,在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內建於處理器的指令集中,效率很高,但是分配的記憶體容量有限;

堆,就是那些由new分配的記憶體塊,它們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**;

自由儲存區,就是那些由malloc等分配的記憶體塊,它和堆是十分相似的,不過它是用free來結束自己的生命的;

全域性/靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同佔用同一塊記憶體區;

常量儲存區,這是一塊比較特殊的儲存區,它們裡面存放的是常量,不允許修改。

以上內容摘自《c++記憶體管理技術內幕》,學習資料結構和演算法前可以多多看一下。

應該先學演算法還是資料結構??

5樓:匿名使用者

個人愚見

演算法是解決問題的方法

解決一種問題可以有很多方法(演算法) 所以就存在解決具體問題最優秀的演算法(方法)

而好資料結構能大大的提高演算法的質量

也就是說先學一下資料結構 對一些常用的資料結構有個了結在一些複雜的演算法中就能體現出資料結構的好處很多資料結構書後部分都講演算法

樓上說 演算法往往是針對特定的資料結構 很正確而「往往」這兩字 就說明了複雜演算法往往需要好的資料結構來支援但也有一些演算法不用到書上所說的資料結構

如 對10個整形數排序

用冒泡法呢? 還是用選擇法呢? 這就是演算法的選擇問題好像跟資料結構沒多大聯絡

個人建議 看看資料結構 瞭解常用和優秀的資料結構再看那些複雜演算法

6樓:匿名使用者

個人愚見,資料結構是演算法的凝結品,因為各種資料常用或通用的資料結構能夠解決在實際應用中的一些問題,然而演算法就是解決問題的一套思路,當這套解決問題的思路固定之後,就會有相應成熟的資料結構產生,也就是雞和雞蛋那個先存在的問題,如果按照正常的思路,先學資料結構,然後再學演算法,不過一般在學資料結構的時候,肯定會有一些知名 的演算法會順帶地學到

7樓:匿名使用者

我想是先學資料結構再學演算法!因為我們是先學的資料結構

因為你只有先了解了資料的結構後才能對它進行操作!

8樓:匿名使用者

一個演算法往往是針對特定的資料結構的,你說應該先學什麼呢?赫赫

9樓:匿名使用者

當然是先學資料結構啦

10樓:匿名使用者

按課程安排是資料結構在前

學習資料結構需要先學習什麼科目?求指導

11樓:匿名使用者

要先學習c或c++程式語言,因為資料結構是需要程式設計實現的。在內容上,資料結構很大一部分是獨立的,但也有一部分與其它課程有關,比如離散數學,線性代數等,不過也沒多大影響,書上都帶有詳細介紹。資料結構理論性很強,需要多動手寫**,理解好原理,而且會程式設計實現,這兩方面都很重要。

學計算機演算法之前要學哪些知識?

12樓:匿名使用者

不用,直接學習就可以了。

不過如果說相對要有的知識的話就比較多了

像:資料結構、編譯原理、組合語言程式設計、計算機組成原理、通訊系統、網路程式設計技術、網路作業系統、軟體工程與方法學、網格計算技術、計算機系統結構等。

學資料結構之前要學習什麼課程?

13樓:八千雲

建議你再學習一下離散數學,它是計算機相關專業的專業基礎課,不學離散數學,資料結構學起來就比較困難。

另外要多練,多寫些**,可以加深對知識的理解。

14樓:匿名使用者

java?或者線性代數? 你看看

資料結構與演算法,哪種語言描述好,資料結構和演算法用什麼語言來學習入手比較好

關於資料結構與演算法的描述問題,現在是使用 c 語言進行描述的為多。因為 c 語言是目內 前比較流行的一種高階程式設計容語言。現在市場上就有售賣 資料結構 c語言版 的教材。該教材中的所有演算法 例如 各種排序演算法 以及查詢演算法 都是使用 c 語言進行描述的。根據我個人的體會就是 至於是學習哪一...

學好資料結構有什麼實在的用處,學資料結構有什麼用?

有些演算法是支撐在高階資料結構上的 除了樓上說的 我們要快速的合併集合 查詢哪個元素在哪個集合中 就要用 並查集 我們要快速查詢改變中的 一列數中的一段的和 就要用樹狀陣列 線段樹 至於還有很多的題目要用二叉搜尋 排序 樹 如treap splay sbt等等 你的問題令人很無語 學計算機語言沒有不...

研究演算法和資料結構的意義是什麼呢

意義 就是為了提高計算 機的運算能力和可擴充套件性了!計算機程式設計的世界裡 最講究的就是演算法和資料結構啊!資料結構設計得亂七八糟的,對於今後可擴充套件性造成一定的限制!如果演算法有問題,那麼算出來的結果就不準確!要得到同樣的結果,假如是1000這個數,你有很多演算法可以實現對吧!什麼演算法計算速...