C語言,資料結構,演算法熟練掌握後,能做什麼?

時間 2023-06-23 12:39:02

1樓:分手莫忘情

嵌入式軟體專案。

大名鼎鼎的linux就是c語言實現的,而且時至今日,linus也是到處反對c++,認為c是最好的語言。linux可能80%都是c語言實現的,剩下的20%可能是一些指令碼和組合語言實現的。c語言比較高效,也適合和裝置打交道,所以要開發個什麼驅動啊,寫個什麼底層網路庫啊,c是比較適合的。

所以學了c語言,首先可以做做嵌入式相關的專案。

通訊及服務端專案。

在要求安全性和效能的領域,c語言往往是第一的選擇,而實時通訊和服務端處理則是這樣的領域。我們能在網路上看到很多招聘中後臺選擇一些跟高階語言的,但是也有後臺選擇c/c++的,尤其是一些效能要求高的場景的專案。

2樓:北極雪

2023年10月27日c語言還可以做系統。現在的作業系統基本上都是c寫的,比如unix。

3樓:匿名使用者

所學的就已經是偏向嵌入式開發了,不過從你專業來看,建議向嵌入式軟體開發。因為硬體開發需要專業知識太高。嵌入式軟體開發重點中的重點就是學好c語言。

什麼是資料結構和演算法分析?在程式設計裡起到什麼作用?

4樓:碼寶寶呀

什麼是資料。

結構和演算法?

資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成。簡單來說,資料結構就是設計資料以何種方式組織並儲存在計算機中,演算法就是運算元據的方法。

資料結構和演算法是相輔相成的。資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。 因此,我們無法孤立資料結構來講演算法,也無法孤立演算法來講資料結構。

資料結構是靜態的,它只是組織資料的一種方式。如果不在它的基礎上操作、構建演算法,孤立存在的資料結構就是沒用的。

在程式設計中的作用?

剛開始學習程式設計時有一種誤解,會程式設計就行,研究什麼資料結構啊?資料結構與演算法能夠幫你如何快速把現實問題轉化為計算機語言。到底該怎麼轉化?

資料結構》已經給出了指引:設計出資料結構,在施加以演算法就行了,當然現實問題會更復雜,需要框架,類庫,模式等支撐,具體的知識可以去小碼哥李明傑瞭解。

這是一種非常重要的邏輯思維能力的鍛鍊,也是程式設計師入門的條件。很多半路出家的人, 僅僅上了個培訓班後參加工作,寫出的**實在是慘不忍睹,很明顯只掌握了工具,邏輯思維的訓練遠遠不足。

總結一下,學習完資料結構其實會潛移默化的影響你的邏輯思維,當然,你需要多多練習才有可能使用純熟,等它變成身體一部分以後,你就發現其實大部分程式設計任務都沒什麼難度了,更難的其實是對程式設計更高的要求:抽象的能力。

5樓:匿名使用者

程式設計是為了解決問題,這些問題並表都是數值計算,其所處理的資料並不都是數值,但計算機所能處理的最終是0和1的二進位制串,所以需要把問題中的資料用計算機能處理的方式來表示,這就需要資料結構。

簡單的說,資料結構是資料在計算機中的表示方式,有邏輯結構和物理結構之分,如邏輯上同樣的佇列,物理上可以是順序儲存,也可以是鏈式儲存。

通俗的講,演算法就是解決問題的方法,比如同樣的排序,可以用氣泡排序、插入排序等,不同的演算法可以達到相同的目標,但是效率可能有所不同。

6樓:匿名使用者

開發軟體的時候,總會遇到需要針對資料計算結果的時候,怎麼用計算機語言把計算過程表示出來,就是演算法了。

什麼是資料結構和演算法?學演算法還需要去了解資料結構嗎?

7樓:匿名使用者

你這理解不完全正確。

因為資料結構不只是記憶體中資料的排列,它是對資料的一種組織方式,就像圖書館要排書一樣,是為了便於操作,同時它本身也整合了對通用操作:比如查詢、比較等的支援。陣列不是一種資料結構,而是一種資料型別。

一個完整的資料結構包括邏輯結構和儲存結構。通常選擇了資料結構,演算法也隨之確定,是資料而不是演算法是系統構造的關鍵因素。

因此在語言實現上,資料結構通常也會包含與之相對應的演算法集合,這些演算法是指基本演算法:查詢、索引、比較等。

資料結構的邏輯結構和硬體是沒有關係的,而其儲存結構受到計算機硬體系統工作方式的影響,通常這點影響在於資料時順序儲存還是離散儲存。演算法的基礎是資料結構。只有指定明確的資料結構,演算法才能設計完成,脫離資料結構,演算法是無法,也不可能成立的。

因為不需要資料的演算法就不是一個有效的計算機演算法,演算法中任何對資料的組織形式都可以被稱之為資料結構。

2.資料結構在程式設計中的地位是極其重要的,是一個程式實現的基礎中的基礎,在此基礎上才能構建演算法。通常而言,你不瞭解什麼高深的演算法,一樣能完成工作,但是如果你不瞭解基本的資料結構,那麼可以說,你根本就不能完成一個任何有實質性內容的程式。

donald ervin knuth教授在其《計算機程式設計藝術》的第一卷《基本演算法》中花費的絕大部分的篇幅去論述資料結構。由此可見資料結構對演算法的重要性。

8樓:匿名使用者

資料結構可以優化資料的存諸,使得資料存諸能夠更省空間,查詢更高效。

有時候資料結構本身就是一種演算法,比如線段樹,splay樹,堆。

而有一些演算法是要建立在資料結構的基礎之上才能夠更高效的。

對於不同的演算法需要採用合適的資料結構。比如最短路徑演算法,對於希疏圖,我們要用連線表來存連。這樣才不能導至大量的空連。而且連的查詢也更高效。

而對於密圖,我們採用連線矩陣來存諸。

9樓:匿名使用者

你可以這樣理解,資料結構你把它理解成excel裡面的製作一張**的表模,比如你做一張工資表,那麼表模肯定你要考慮每一個資料的意義和它們應該放置於哪個位置。而演算法就是你在**內部資料間的關聯運算,可以是邏輯的也可以是數學的。

因此你製作一張工資表,你肯定要先定結構,然後再定演算法。當然你說只學演算法不學結構照樣能做出結構來,但你考慮更高一個層次,如果你這張工資表只是一個公司幾百份**中的一份,你如果不把它的結構搞得很清楚的表達,你其他**要呼叫這張**的資料就無從做到,而你如果用結構來表示,就很清晰了,這就是結構和演算法的不同。

結構是較為巨集觀的思考方式,演算法是微觀的實現,它們之間密不可分。當然在現在軟體開發工程裡面,系統工程師可以分為做結構和做演算法的,但一般做結構的都是更核心的成員,他們懂演算法,但不用做演算法,他們只要把資料結構模型構造好,工程分拆清晰,讓其他的程式設計師按照他們規劃的結構去做細緻的工作就可以了。

10樓:匿名使用者

資料結構與演算法密不可分。

資料結構注重了資料的組織形式。 資料的一定的組織方式已決定了只適用於某此演算法。

演算法尋求在指定資料結構上的最優解, 也就是最有效率的方法。 為此也有此設計特定的資料結構的, 比如紅黑樹就是被髮明出來的。

好的演算法: 儲存空間效率(資料結構)與時間效率(演算法效能)達到一定的平衡, 而非只突出時間效率。 所以一定要同時考慮這兩個方面才能設計出一個好的演算法。

應用中還要考慮特定的環境, 比如嵌入式, 沒有大的記憶體, 這時有些佔用大量的記憶體的一些演算法就不適用了。

另一種角度: 借用c++中stl的概念,資料結構: 在c++中定義為容器, 比如:vector(陣列) list(連結串列)。。

而這些容器對於裝入其中的東西並無限制, 比如使用者可定義裝int, 也可以裝char, 還可以裝string資料。

演算法: 在c++中定義也叫演算法, 比如find, 查詢指定的一個元素, 你可在vector容器中查詢 , 也可用在list容器查詢。 但是在不同的容器中查詢效率是不同的, 這是容器本身決定的。

11樓:匿名使用者

呵呵,這兩個都是要學的。。。不學你怎麼做好程式設計。

12樓:碼寶寶呀

資料結構就是「多維度」的模版 + 內部與外部的聯絡。 當您定義好資料結構的時候,一個初始的資料模版就被定義出來,然後這個利用這個模版,您可以生成你想要的資料的模樣。 這些資料內部的值可以內在有各種各樣的聯絡,資料與資料直接也有各種個樣的聯絡。

利用資料內部和外部的聯絡的配合,可以幫助人們抽象各種個樣的問題。 常見的資料結構有連結串列,棧, 佇列,陣列等等。

演算法以我的理解就是解決一個問題時需要的一個流程。通常一個演算法能解決一類相似的問題,只要你的程式按照既定演算法的步驟進行,就可以解決此類問題。對學習演算法,我的建議就是把演算法具體成影象,把幾個關鍵的步驟用影象記憶下來。

資料結構和演算法是相輔相成的。資料結構是為演算法服務的,演算法要建立在特定的資料結構之上,因此無法孤立資料結構來講演算法,也無法孤立演算法來講資料結構。所以學演算法就會涉及到資料結構,同樣學資料結構也必須學到演算法。

在c語言程式設計中資料結構與演算法是怎麼體現的,或者說怎麼理解資料結構的作用?

13樓:匿名使用者

舉個bai例子,你寫個程式,要存du全校學生zhi的資訊。

首先學生數量dao可能是專變動的,你不可能寫屬成固定陣列。

你可以思考下怎麼存。

這時候就可以建立一個連結串列,在每次輸入一個新生時把他掛入連結串列。

這樣就可以遍歷學生資訊了。

這裡只是講資料結構對儲存的作用,另外一方面是,好的資料結構,可以使演算法簡單,可以讓程式結構清晰。

這裡我想吐槽下,學校的教育模式:學生都不知道是幹嘛的,幹嘛要去學,還要考高分?而老師只會說:

能到以後你們就會明白的,我靠。不知道學的東西是幹嘛用的,我怎麼想去學,怎麼會有興趣,怎麼會去主動。

14樓:匿名使用者

一個程式就是由資料結構和演算法組成的。

演算法就是你解決這個問題的想法,用什麼樣的方法哪些步驟去解決。

資料結構就是你解決問題時所需要用的工具,比如儲存資料,優化程式等。

c語言與演算法和資料結構分別有什麼關係?

15樓:匿名使用者

資料結構的主要作用是幫助你提升自己的程式設計思維!使你編寫程式的時候有一個好的思維和框架!使你寫的**和程式有一個好的框架!

資料結構研究的是資料的邏輯結構、儲存結構(物理結構)和資料的運算。其中的資料運算就是指演算法。

演算法只是具體的實現步驟的指令集合!但是演算法也是資料結構最重要的一部份!設計一個好的演算法可以提高自己程式的執行效率!

演算法不一定要求能夠在計算機上直接執行,但程式必須要求能在計算機中執行)

c語言只是對演算法或者資料結構的描述!描述資料結構和演算法不侷限於c語言,也可以是c++語言和其他的計算機語言甚至也可以用人的自然語言!

所以只是說學習好c語言能夠使自己學習的資料結構理論更好的在計算機中描述和表達!

學習c++資料結構,求經驗~

16樓:愛生活的翟先森

首先坦白告訴你,資料結構不好學。在學校學的然後做題那種的都很片面。畢竟是要考試,我建議你先跟老師走,看嚴蔚敏那本教材,會做題就行啦。

但真正學資料結構,我覺得在於清晰掌握思想,並自己用手去實現。這個過程週期長。要想學得深刻,你謹記以下幾點:

1.分章再分節,節節來突破。

2.要耐心,開始看偽**覺得好煩,靜下心去,會慢慢懂得。

3.要多用筆代替電腦去畫畫**走的流程。等到很熟了,再在計算機上在思想的指導下編碼,而不是靠記憶,或是老修改過來修改過去的亂撞。

4.淡定加深沉。週期長,所以你慢慢學,不要著急。

每一節相關的東西儘量都搞透。舉個例子:排序演算法裡那麼多種,有哪些穩定但又為啥穩定,複雜度哪些為log2n,又是如何計算來的,最壞時又如何,最好時又如何。

你問得越多,你自己去想,慢慢你就會愛上資料結構啦哦。

資料結構c語言描述,資料結構(C語言描述)

include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...

C語言資料結構考試,C語言資料結構考試

桐疏蘭 c語言是一門程序導向 抽象化的通用程式設計語言,廣泛應用於底層開發。c語言能以簡易的方式編譯 處理低階儲存器。c語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。 這個考題應是c程式設計和資料結構在一起的 咖啡巷 直接選擇排序等幾種排序方法書上是有介紹的。基本...

C語言資料結構

要求簡單設計一個結點值為整數的佇列的構思,並給出在佇列中插入一或刪除一個結點值的演算法 include include typedef struct node 連結串列資料結構 node node node node creat 建立新連結串列的函式,當輸入的值為0時建立完成 else cycle ...