僅用C語言可以構造出Python中Dict那種數據結構嗎?

查找,插入,刪除的時間複雜度能一樣不?


CPython的dict就是用純C實現的嗯:

cpython/dict-common.h at master · python/cpython · GitHub

cpython/dictobject.c at master · python/cpython · GitHub


Python就是用c實現的,你說可以不可以?

另外,c實現的這種哈希表+鏈表的二維數據結構,其實也有實例:memcached中的緩存就是同一種數據結構。

只不過,在python裡面,鏈表用於維持有序性(foreach/push/pop的時候用到),而mc中,鏈表則用於淘汰演算法LRU。


Python一般就是CPython,它的Dict不就是c寫的嗎


你需要Python源碼剖析 (豆瓣)


當然可以,官方的Python就是C語言實現的。從另一方面講,這兩門語言是圖靈等價的,所以是可以的。


這和是什麼語言沒關係吧,只要這個語言是圖靈完備的就可以,當然難易程度另說


沒有c語言幹不了的活,只有適合不適合。


推薦閱讀:

用c語言怎麼實現把一個文件中所有的字元串進行篩選,重複的字元串只留下一個?
C語言中的一個小問題?
C 指針傳遞變數為什麼無法修改變數值?
不學C語言,直接學C++會有問題嗎?

TAG:Python | 演算法 | C編程語言 | 數據結構 | 演算法與數據結構 |