
資料內(nèi)容:
01.python中有哪些可變類型與不可變類型
初級 Python
可變類型:會在原來的內(nèi)存地址上修改元素 ?如: 列表,字典
不可變類型:不會在原來的內(nèi)存地址上修改元素,?是指向了新的內(nèi)存引? ?如:整型,字符串,元組
02.棧和堆的區(qū)別是什么
1. 申請?式的不同。棧由系統(tǒng)?動分配,?堆是?為申請開辟;
2. 申請??的不同。棧獲得的空間較?,?堆獲得的空間較?;
3. 申請效率的不同。棧速度較快,堆速度?較慢;
4. 底層不同。棧是連續(xù)的空間,堆是不連續(xù)的空間,是?棵完全?叉樹。
5. 存儲內(nèi)容的不同。棧在函數(shù)調(diào)?時,第?個進(jìn)棧的是主函數(shù)中的下?條指令的地址,然后是函數(shù)的各個參
數(shù), 在?多數(shù)C編譯器中,參數(shù)是由右向左?棧的,然后是函數(shù)中的局部變量,注意靜態(tài)變量是不?棧
的, 靜態(tài)變量存儲在靜態(tài)存儲區(qū)。當(dāng)本次函數(shù)調(diào)?結(jié)束后,局部變量先出棧,然后是參數(shù),最后棧頂指針
指向最開始存的地址,也就是主函數(shù)中的下?條指令,程序由該點繼續(xù)運(yùn)?;堆?般是在堆的頭部??個
字節(jié)存放堆的??。堆中的具體內(nèi)容由程序員安排。
03.堆、棧、隊列之間的區(qū)別
1. 堆是在程序運(yùn)?時,?不是在程序編譯時,申請某個??的內(nèi)存空間。即動態(tài)分配內(nèi)存,對其訪問和對?
般內(nèi)存的訪問沒有區(qū)別。
2. 棧就是?個桶,后放進(jìn)去的先拿出來,它下?本來有的東西要等它出來之后才能出來。(后進(jìn)先出)
3. 隊列只能在隊頭做刪除操作,在隊尾做插?操作.?棧只能在棧頂做插?和刪除操作。(先進(jìn)先出)
04.簡述數(shù)組、鏈表、隊列、堆棧的區(qū)別
數(shù)組和鏈表是存儲?式的概念,數(shù)組在連續(xù)的空間中存儲數(shù)據(jù),鏈表在?連續(xù)的空間中存儲數(shù)據(jù);
隊列和堆棧是描述數(shù)據(jù)存取?法的概念,隊列是先進(jìn)先出,?堆棧是后進(jìn)后出,隊列和堆??梢?鏈表來
實現(xiàn),也可以?數(shù)組來實現(xiàn)