c語言基礎差,數據結構學不會怎麼辦?

大二理科女生,但是不擅長理科,學的計算機,但是數據結構剛一開課就聽不懂,老師打的代碼也看不懂,該怎麼辦呢,這時候轉專業已經來不及了,接下來的三年時間只能學我目前的專業了,之前的c語言也是勉強及格,現在感覺好絕望TAT,不知道該怎麼學


某一天,你上小學二年級的蘿莉外甥女找到她心目中已進入大學殿堂的偉大的你,苦惱地向你抱怨:學校上學期教的乘法九九表記不住啊,感覺乘法好難學啊,這學期老師講的課要用到好多乘法我都聽不懂了,請問怎麼辦呀?

聽了她的抱怨,你會傳授給小蘿莉一些方向、道路或是感悟。那麼,現在,把你會對小蘿莉說的話,用在你自己身上,就OK了,OK了。


既然都知道了C語言基礎差,那不快去惡補一下C語言……大部分人都是這樣,都知道問題所在了,但是就是安於現狀不願意去改,自己不改還指望別人改不成。

不過話說數據結構從邏輯上理解跟語言關係不大吧,語言只是描述數據結構的工具……題主的問題不是在C語言,而是壓根沒理解數據結構的本質。要把握住一點,數據結構就是數據之間的組織形式,比如我給你一千個學生的名單,你怎麼去保存它呢?你用excel按序排下來,那就是線性表咯。你說一個家族裡面有很多人,怎麼保存呢?你應該看過家譜吧,那不就是樹么?所以,這玩意跟語言關係大么?不大吧……至於你說不能用C語言去實現這些結構,不好意思,那就是你說的,C語言基礎不行,除了多寫代碼多嘗試,沒別的辦法……


知道基礎差就多補補基礎,一步一步來,你可以重新複習一下c或者學一門更高級的語言來玩數據結構。

加油,我是自學的,遇到的問題問知乎認識的朋友,但大部分是自己查資料,至今學完了平衡二叉樹,演算法分析是硬傷,已略過,表示會買本具體數學學習一下。

連我這樣非科班的都能堅持,我相信你也可以


老師上課聽不懂就暫時彆強求了吧,在下大學的老師上課都是念 ppt 的,我基本上就沒聽懂他們念過,當然也有可能你的老師是用心教書的。

無論如何,我覺得你應該開啟自學模式了,不然還能怎樣呢。

演算法和數據結構,看這本書 演算法精解:C語言描述 - ,如果 c 語言不是很差的話(比如說一聽指針就想屎)可以看懂,這本書前半本說的數據結構,後半本說的常用演算法,跟我買過的其他演算法書喜歡給偽代碼或者代碼片段比起來,這本書裡面給出的都是完整的 c 代碼,完整的,完整的,能在各個平台完美編譯並且工程結構良好的代碼,對著裡面的代碼輪一圈, redis 源碼那些底層的數據結構都能夠看懂。

使用方式就是文字過一遍,對著代碼敲一輪,然後在給代碼加上些測試就ok(比如插入鏈表節點,然後從中尋在被插入鏈表的節點是否在鏈表內,然後刪除節點,再查找什麼的),文字上看不懂的地方有時候自己敲敲代碼就 ok 了,代碼上看不懂的地方,也可以回過頭來看看文字描述。如果還不懂看可以查查 演算法導論(原書第3版) (豆瓣) 這本書的相關章節,注意,如果僅僅是想學學數據結構,千萬別看裡面的數學推導!!!!如果,還不懂,呃。。。。。google 吧。如果不是數據結構的內容不懂,而是 c 語言的細節不懂,往下看。

c 語言,如果有些基礎的話,可以看這本書 C程序設計語言 (豆瓣) ,短小精悍,可以快速學習這門語言。如果沒什麼編碼經驗,裡面的內容還是有些挑戰性的,尤其是練習,可以根據自己的情況做或不做。無論如何,我還是會推薦你買這本書 C語言程序設計 (豆瓣) (注意它跟 C程序設計語言 (豆瓣) 是不一樣的!)它介紹了 c 語言中許多的基礎知識,零基礎的可以從頭學起,在看 演算法精解:C語言描述 - 這本書時不懂的地方也可以查閱。

我自學 c 語言的時候走過不少彎路, 分享一下,僅供參考,大學的時候看的譚浩強,花了我許多時間琢磨,卻學得屎一樣,然後看 C程序設計語言 (豆瓣) 做練習做得想屎,期間看過一丟丟彙編,嚴重懷疑人生,後來就擱置了,忘成渣了,覺得自己對編程不會再愛了,隔了很久很久我做上了前端工程師,做前端工程師一段時間後,為了學習演算法和數據結構,再看了一輪 C程序設計語言 (豆瓣) ,可以看懂,但畢竟這本書內容比較少,在學習演算法和數據結構的時候,還是會碰到不懂的語言細節,我就買了本 C語言程序設計 (豆瓣) 用來查閱。

說這麼多呢,我只是想表明 C程序設計語言 (豆瓣) 這本書不適合純小白看,而適合純小白的C語言程序設計 (豆瓣)這本書,我沒用從頭到尾看過,所以給不出親身經歷過的,並且是有效的書本的使用方式,但這兩本書,都是好書。

祝好運。


學數據結構要畫圖。。。把代碼抽象化,把數據結構的一行行代碼分析成你所理解的圖像。如果你分得清演算法和數據結構就好辦了,我一開是分不清也是雲里霧裡的。

數據結構比演算法要好實現,因為你不用把所有部件寫出來都能運行。就像棧這個數據結構,你可以完全只寫個PUSH();進行壓棧的操作,也能拿到main函數運行,也不會出什麼問題,什麼時候想把棧裡面的數據彈掉,再去寫個POP();往main函數里一放,就可以用了。


一,強推薦Headfirst C

看了好長時間C語言也沒看出什麼所以然,看了這個書一下就開竅了。

二, 推薦嘗試開始用C語言做題

用leetcode,lintcode,poj啥的都行,從簡單題開始做,需求才是學習動力

三,學會上網

google,stackoverflow


正常。

數據結構是計算機專業考研必考科目。

不考研出去找工作面試題往往也是考你數據結構+演算法。

所以你要想上一遍課就掌握數據結構簡直是不可能的。

熟能生巧,想提高的方法只有反覆去看、反覆去想,反覆去練。

在日常的編程中試著套用數據結構中提到的幾種結構(一般是線性表、樹、圖)當你能夠運用這些結構去解決一些簡單的問題的時候,你會發現你的編程思想得到了本質的提高。

到時候編程語言只有熟不熟悉的區別,沒有會與不會的情況。

所以騷年,完全不必擔心你大一學不好數據結構與C語言。

我敢說計算機專業80%的學生在大一的時候都沒法把C語言和數據結構學的很好。

士別三日當刮目相看,何況是三年。(一開始沒仔細看題主是大二的,不過現在這兒也不改了,因為學C的時候也帶到了數據結構的知識)

若是以後從事編程工作,你還有很長的時間可以去凝練數據結構的知識用法。

請加油。


我來說說我的經歷吧,轉專業不到一個半月,(3月下旬轉專業到現在的確一個半月不到),而且我曾經休學過一年,所以我相當於重新開始學習,請注意是學習而不是學習計算機!

這一個半月保持高強度的學習,每天自習八個小時左右,現在基本上能夠運行自己寫的數據結構代碼,嚴版數據結構書上的演算法自己能夠寫百分之80,剩下的由於底子薄和時間不太夠所以導致有點看天書,所以不要怕,要靜下心去看數據結構,不會的自己上網查,編譯錯誤的原因自己打英文上網查。我都行你怎麼就不行?

說一些題外話吧,對我來說C語言中指針和結構體是我當時接觸數據結構時最大的障礙,不知道對你是不是一樣,如果是的話請先弄懂指針!


我也是大二,也是一頭霧水,數據結構生無可戀


找本講c/c++ 的書,把上面涉及到的所有代碼自己敲一遍


其實不難,需要一個人跟你梳理一下,我有個回答是關於數據結構的簡述不知道你看不看得到,最好不要找那種照本宣科的老師,有問題多問問同學或者高年級的。


只能背題啦。。。默哀


教學計劃盡量聽懂,然後選擇你喜歡的東西去學,這才叫大學嘛?


學你自己想學的,做你愛做的事


推薦閱讀:

為什麼windows 可以直接支持skylake 的驅動?
電腦卸載藍燈後,edge沒法上網了,TGP也沒法用,怎麼辦?
32位的cpu只能定址4GB的內存空間,那麼硬碟,flash這些存儲設備是如何定址的的?cpu怎樣讀取其中某個地址的數據?
python的numpy向量化語句為什麼會比for快?
能否通過修圖等手段將小解析度的圖片轉變為大解析度?

TAG:編程語言 | 計算機 | 數據結構 |