Ⅰ 學習《數據結構與演算法分析》用哪種語言描述比較好C/C++
如果你對C++不是非常熟悉的話,學習演算法的時候還是看C語言描述的比較直觀。再者演算法學習方面比較權威的有一本《演算法導論》,這本書講的很有深度,所以認真讀起來還是很有意思的。另外需要糾正一點,語言本身就是來實現演算法的載體,所以學透一門語言也是必須的。
Ⅱ 數據結構演算法(C語言描述)和C或C++程序具體什麼關系啊
用C語言或C++等語言寫程序時,經常要用到一些通用的數據結構(比如隊列、棧、鏈表等)和通用的演算法(比如快速排序演算法、堆排序演算法、樹或圖的遍歷演算法等),這些都在數據結構演算法中有描述。此外,在數據結構演算法中還能學到對程序進行優化的知識,有利於編寫出更加優秀的程序。
Ⅲ 數據結構用什麼語言
問題一:數據結構和語言是什麼關系? 數據結構其本身是和語常無關的,也就是說數據結構只有一個版本,至於應該選擇哪一個語言進行學習,可以就個人愛好與善長決定。C,C++,java都是不 錯的選擇。數據結構和語言的關系就像數學定理和描述它的自然語言一樣,你可以用中文表達勾股定理,也可以用英文,法文或者世界上任何一種語言表達它,但是 世上只有一個勾股定理。當然,如果任何一種語言你都不會,那將無法學好數據結構的。如果你打算今後都用C語言,那麼可以認為數據結構是C語言的加強和發 展。
問題二:學習數據結構都使用什麼語言 自己熟悉什麼編程語言
就找一本相應編程語言的數據結構書記進行學習
這樣更容易學一些
問題三:數據結構 各編程語言是通用的嗎? 數據結構是一種工具,重要的是它的思想。具體的實現倒是沒什麼的,JAVA和C無非是長的不太一樣(只談語言代碼)。演算法和數據結構都是一樣的東西,《演算法導論》上的都是偽代碼,用的類C和類PA丁CAL。學JAVA或.NET的照樣可以看。
所以LZ用這個還是可以的,但如果看不懂C語言或者代碼實現能力有問題……那就沒辦法了……還是去搞本能看懂的書吧
建議LZ多用一些比較經典的書。現在書抄書太嚴重=。=
問題四:學習數據結構用什麼語言最好? 呵,肯定是C語言啦。
問題五:大家數據結構演算法用什麼語言寫? 寫數據結構課程設計,除了第一個長整數加減乘除用的C語言,後面幾個課程設計都用C++了,覺得數據結構就應該用C++,面向對象
問題六:C語言中所謂的數據結構是什麼啊? 所謂結構就是組織形式,數據的結構就是數據怎麼組織,即怎麼描述,怎麼在電腦中存儲。不同類型的數據,它們的組織形式(數據結構)是不同的,如我們把一個班的學生按照學號排隊,可以用「數組」來描述它,而如果要描矗一個家族的系譜,從祖先到子子孫孫,開支散葉,則可以用「樹」來描述,因為這樣的數據組織起來像一顆樹。數組和樹,在進行插入數據,刪除數據等操作時,它們的操作方式是不一樣的。如果想編程序,那麼必須要了解一些數據結構方面的知識。因為你首先要知道怎麼描述數據。
問題七:c語言學到哪個程度可以看數據結構? 學會C的基礎 並且能夠熟練運用C來完成一些基礎的小程序 重弗要會指針(這個好重要) 數據結構一堆東西都要用到指針 鏈表 堆棧 樹 圖 七七八八的 這樣一般就可以開始看了 數據結構里看不懂的再回去翻翻C 兩邊都能得到提升
問題八:openflow數據結構是什麼語言 事實上,OpenFlow交換機在Interop Las Vegas 2011上就已經公諸於眾了,並且也引起了很大的爭論。
SDN允許網路工程師控制和管理他們的網路,以便最好地服務他們各自需求,從而增加網路功能和降低運營網路的成本。Open Networking Foundation支持OpenFlow規范,這將最終實現定義軟體的網路。
OpenFlow是一套軟體API,它允許一個控制器將配置信息發送給交換機。這個配置往往指的是一個流及其附屬的某些操作。
流是一組定義的幀或者數據包(類似於一個MPLS流)與一組操作。例如:
Source IP/Port、Destination IP/Port和Drop。
Source IP、Destination IP和QoS Action。
Source MAC、Destination MAC和L2 Path。
通過OpenFlow,您可以將一組規則發送給一台配置設備的交換機或者路由器。然後每個設備會根據它的類型使用這些數據。交換機會更新它的MAC地址表以轉發幀,路由器會添加訪問列表,而防火牆會更新它的規則。
當組織將網路配置從設備遷移到軟體平台時,交換機就變得更加簡單和廉價了。但是主要的受益是網路配置可以由中央控制器管理。
控制者是一個包含演算法、數學、分析和規則的軟體,它來自規則組,並使用OpenFlow將配置下載到網路設備中。因此,當控制器評估和重新平衡配置時,網路就可能動態地進行重新配置。這就是所謂的軟體定義網路。
HP Networking: HP已經在OpenFlow上投入了大量的資源。我見過HP向委員會提交的一個QoS功能的演示,並且公司也為控制器平台制定了全面的軟體計劃。
NEC: 您可能還未聽說過NEC也是一個網路供應商,但是這家公司有完整的產品系列,並且已經在NEC美國市場開始銷售了。NEC已經為OpenFlow做出了幾個重大的貢獻,而且它有一個支持OpenFlow的完整系列交換機。在Interop上,NEC演示了它的OpenFlow控制器。
Cisco: 雖然網路巨頭是Open Networking Foundation的成員之一,但是我還未能找到它關於OpenFlow的計劃。很可能Cisco會覺得OpenFlow破壞了作為營利產品的IOS軟體。OpenFlow最突出的優點是減少硬體交換機的成本,而本身不會給網路供應商的銷售帶來任何的提升。
Avaya: 雖然公司在Shortest Path Bridging策略方面下了很大的功夫,但是據我了解,公司目前並沒有任何關於OpenFlow的計劃。
Arista: 網路新貴並沒有任何關於OpenFlow的發布計劃,同時它還指出在一台設備上管理所有流是不可能的。雖然Cisco也這樣認為,但是我認為這是對OpenFlow工作方式的一種誤解。使用OpenFlow來處理每一個流是可能的,但這並不是必要的,這只是一個配置選項。
Big Switch Networks: 這個最近成立的新興公司關注於OpenFlow解決方案,特別是網路虛擬化。雖然Big Switch網站上沒有任何的詳細信息,但是我認為它們正在開發控制器和交換機。
如果OpenFlow能夠擁有足夠多的客戶,那麼它將從根本上改變網路行業,因為我們目前所使用的控制協議(例如OSPF或者Spanning Tree或者DCB)將被軟體控制器所取代。雖然這會促成硬體的商品化,但是軟體控制器將成為網路行業中新的組成部分。...>>
問題九:數據結構到底怎麼學比較好啊? 寫數據結構代碼編程了學習C語言,是大多數初學者的經驗,其實有辦法可以避免的。
多想> 多看 > 多寫字 > 多動鍵盤
養成好的編程習慣很重要。
做任何工作之前,要把自己的思路整理清楚 參考別人的相關工作經驗,針對自己的需求做分析 把思路落實到紙張上 採用自頂向下的編程方式,先把你的個函數的功能,入口和出口描述清楚 每個函數內部的執行流程,都要注釋好。 最後再分段逐步編碼。
這樣可以有效的避免大多數的錯誤發生。 即便出現錯誤,也很容易定位到問題的所在。 不知道大家是怎樣看待數據結構這門課的,有多少人覺得數據結構很難呢?我知道還是有一些同學這樣覺得的,有時候我跟我的朋友講要怎樣學,講了一大堆以後,他就向我抱怨:我以前c++都沒有學好,數據結構更學不好了,這哪跟哪的話啊,數據結構與c++沒有什麼關系,我想假如抱有這樣的心態,自己就不相信自己,那是不可能學好的,然後那些覺得數據結構很難的同學,我想他們應該會很看重數據結構的吧,然後就一天到晚捧著一本數據結構,這樣不會覺得很累嗎?而且因為覺得很難,就容易不相信自己,學的效率也不會很好,個人認為數據結構很好學,很容易學,或許這有點妄自菲薄吧,但是因為我覺得很容易,當然就會覺得自己沒問題,學得很輕松,效果也還可以。大家都是從高考走過來的,應該知道心態的重要性吧,兩種不同的心態,完全就是兩種不同的效果。學了這么久數據結構了,我們到底在學些什麼呢?不知道大家有沒有想過,那現在我們現在來歸納一下我們學習的內容吧,其實學到現在我們也就學了幾種普通的數據結構,象二叉樹,樹,圖,還有排序的問題,前面的線性表和字元串也就是一些概念,當然還有一個很重要的KMP演算法,然後在每種數據結構中我們也就是學到了若干處理的演算法,我想真正數起來也就是幾十個演算法吧。學習數據結構也就是要掌握這幾十種演算法,多簡單。至於如何掌握每個演算法呢,我想就是多看看書,重要的是能夠理解。 如果真的想學好數據結構的話,最好是能夠自己思考問題,不要剛想了一會就覺得做不出來,然後就去問其他人。其實張老師給我們的作業還是基於我們的水平的,我絕對相信我們自己能夠獨自想出演算法,雖有可能會比較長時間吧,但是這樣肯定會比問其他人學到更多的東西。當然我並不是說不要問同學,有時候就是腦筋轉不過來,一問別人就懂了,當然問了別人不能只是我知道了這個演算法,還應該去想如何思考才能得到這個演算法,這樣水平會提高很多。
很多計算機專業的同學對於大學2年級開設的數據結構課程很是頭痛. 看見大家總在談論數據結構重要性,可使自己學習卻總也找不到合適的方法. 下面我和大家分享一下我過去一年多以來學習和應用數據結構方面一些經驗. 內容都是來自作者本人的一些經歷和體驗,希望對於大家學習數據結構有引導作用。 1什麼是數據結構 數據結構從文字上面來看,為數據和結構兩部分。這樣就很容易聯繫到數據結構的本質是一種對於數據結構花的知識。補充一個知識點,數據結構本質和離散數學有很密切的關系。離散數學是處理的是離散(非連續的)的數據,站在數據結構的觀點上來看,也可以理解是一種非連續數據的結構。 2數據結構和程序設計語言 數據結構和程序設計語言本身沒有任何聯系,唯一有的關系就實用程序語言去描述數據結構。 因為數據結構是一種抽象數據,通過程序設計語言可以將在計算機中進行實現。今天大學里數據結構課程常用來描述數據結構的語言有C程序設計語言,C 程序設計語言和JAVA程序設計語言.而對於喜歡其他語言的同學完全可以自己通過學習數據結構後用自己熟悉的程序設計語言去完成程序化的描述. 我自己過去......>>
問題十:用C語言寫的數據結構的定義 這個語句是2條語句復合成的。
首先typedef 表示數據類型重定義
表示將結構類型struct {elementype data;struct node *next;}重定義為node
以後就可以用node表示struct {elementype data;struct node *next;} 類型了
拆開寫應該更好理解一些
struct node
{
elementype data; 弧/elementype表示一種數據類型,可能是int/char等等
struct node *next; next 指針,用於鏈表結構指向下一個節點
};
typedef struct node node; 重定義struct node類型為node
重定義後數據定義struct node mynode;就等價於node mynode;了
Ⅳ 數據結構與演算法,哪種語言描述好
關於數據結構與演算法的描述問題,現在是使用 C 語言進行描述的為多。因為 C 語言是目前比較流行的一種高級編程語言。現在市場上就有售賣《數據結構(C語言版)》的教材。該教材中的所有演算法(例如:各種排序演算法、以及查找演算法)都是使用 C 語言進行描述的。
根據我個人的體會就是:至於是學習哪一種具體的編程語言來進行編程那還是其次的,最、最關鍵的是:一定、必須要做到:具有很好的邏輯思維能力、以及動手解決實際問題的能力、編程思路清晰、精通數據結構及其各種演算法。只要做到了以上這些事情,那麼使用(或者是學習)哪一種編程語言都是非常容易的。
Ⅳ 數據結構與演算法和c語言有什麼關系嗎
數據結構和演算法在本質上說和C語言沒有關系,C語言僅僅是描述工具而已,就像要講一個故事,可以用漢語,也可以用英語。數據結構和演算法同樣可以用java,用c#等語言,甚至自然語言也可以描述。
數據結構與演算法是計算機科學,具體的實現無非就是些數據交換和變化,這些交換和變化大都是在內存中進行的,而c/c++操作內存的能力要強於其他語言(當然匯編在操作內存方面更強,但離自然語言太遠,不易理解),所以學習數據結構和演算法就常使用c/c++語言當作描述工具。
Ⅵ android方面的一些演算法和數據結構用什麼語言寫呢C還是java
演算法是通用的獨立於語言的。 安卓底層是c寫的,給出的api是java的。安裝的開發官方語言就是java
Ⅶ C語言與演算法和數據結構分別有什麼關系
數據結構的主要作用是幫助你提升自己的編程思維!使你編寫程序的時候有一個好的思維和框架!使你寫的代碼和程序有一個好的框架!數據結構研究的是數據的邏輯結構、存儲結構(物理結構)和數據的運算.其中的數據運算就是指演算法
演算法只是具體的實現步驟的指令集合!但是演算法也是數據結構最重要的一部份!設計一個好的演算法可以提高自己程序的運行效率!(演算法不一定要求能夠在計算機上直接運行,但程序必須要求能在計算機中運行)
C語言只是對演算法或者數據結構的描述!描述數據結構和演算法不局限於C語言,也可以是C++語言和其他的計算機語言甚至也可以用人的自然語言!
所以只是說學習好C語言能夠使自己學習的數據結構理論更好的在計算機中描述和表達!
Ⅷ 數據結構演算法你用哪種語言來寫
這個,偽代碼就夠了,我就用的偽代碼,所謂演算法那就和程序要區分開來,演算法考查的是思想,你用什麼語言實現並不重要,體現出演算法的思想就夠了
Ⅸ 數據結構和演算法用什麼語言來學習入手比較好
C語言會比較好,C更加基礎,書籍大部分也是C、C++的,如果只考慮java和C++的話,C++比較好,演算法的話《演算法導論》很經典,數據結構的話可以看《演算法與數據結構》傅清祥 王曉東版的。
Ⅹ 數據結構演算法是什麼語言寫的,是c語言嗎,看不懂啊
這個確實是用c寫的,SqList是封裝的一個數據結構,這個函數就是對這個數據結構進行的操作。
你只需要明白SqList這個封裝的數據結構(一般是一個結構體),然後就會知道這個函數是怎麼操作的啦。