c++棧 普通程序員該如何進階為全棧工程師?
普通程序員該如何進階為全棧工程師?普通程序員高級到全棧工程師,要求很多。我從事開發(fā)工作近10年,也是一名全職工程師。作為一個過去時的人,我會給你一些建議:1。專業(yè)技能提升要求:DIV CSS,Java
普通程序員該如何進階為全棧工程師?
普通程序員高級到全棧工程師,要求很多。我從事開發(fā)工作近10年,也是一名全職工程師。作為一個過去時的人,我會給你一些建議:
1。專業(yè)技能提升要求:
DIV CSS,JavaScript,jQuery,AJAX;
MySQL
redis,mongodb
Linux
讀寫分離,主從同步,異步操作,消息系統(tǒng),負載均衡,性能調優(yōu),elk Java,C#,PHP,python等
2。非專業(yè)技能要求:
掌握以上技術后,我將自己編寫一個框架并使用
這里,我用C語言實現(xiàn)堆棧,代碼附在文本中。
1. 堆棧表示
堆棧遵循先入后出的原則,所以我們需要頂部和底部指針。讓我們用len表示當前堆棧中有多少元素,用stack size表示堆棧可以存儲多少元素。以整數(shù)為例。
2. 要創(chuàng)建堆棧,使用malloc函數(shù)分配空間,使基指針指向空間的起始位置,并將頂部指針設置為底部指針。設len為0,stacksize為初始堆棧的最大值。這樣,堆棧就被初始化了。注意:Max_u2;在進入堆棧時,我們首先考慮堆棧是否已滿。如果已經(jīng)滿了,我們需要增加分配的空間。Realloc函數(shù)可以用來動態(tài)分配空間。具體用途可在線查詢。然后將stack元素指定給top指針指向的空間,并設置top 1。這樣,就完成了一個堆棧條目。
4. 離開堆棧前檢查堆棧是否為空。如果為空,則會報告錯誤。如果不為空,則堆棧頂部指針將減少1(此處的堆棧頂部指針指向要放入堆棧的空間,因此離開堆棧時將減少1)。然后將指向空間的上指針的值賦給容器,并將長度減少1。
5. 銷毀堆棧。銷毀堆棧時,釋放malloc分配的空間。注意:免費(s->base)是可以的。如果循環(huán)釋放free(s->base),將報告錯誤。原因:基址沒有指向malloc分配的地址。
6. difference&*&是地址符號,*是內(nèi)容符號。在指針中,這兩個符號非常重要。當我們需要更改函數(shù)的外部參數(shù)的值時,我們需要傳入變量的地址而不是值。例如,如果我需要更改int a的值,我需要這樣寫:通過這種方式,我可以理解為什么在前面的函數(shù)中直接使用stack*s而不是stack s,因為直接傳遞的s不能更改s中元素的值。
7。區(qū)分->和。在C語言中->前面是指針和。前面是結構變量。因此,當函數(shù)傳入結構指針時使用s->len,當函數(shù)傳入結構變量時使用s.len。