lisp中的鍊錶

2021-05-27 14:04:19 字數 348 閱讀 5304

最近看了點lisp,雖然是剛剛開始看,已經感覺像是進了乙個完全不同的世界。

用習慣了c語言的同學對lisp中的鍊錶可能公感覺費解。查閱了一些資料後才大概了解了lisp中的鍊錶是什麼樣的。

lisp中的鍊錶也是由結點組成的,而且與也c語言中很像,結點包含了乙個值域和乙個指標域。

(cons value addr)  可以構成乙個結點。

然而與c語言中不同的是,value和addr 的分工並不是那麼的明確。實際上,value可以是另乙個結點,而addr 也可以是乙個值

比如: (cons (cons 1 2 ) 3) 返回的便是 ((1.2).3)

在值域,它是另乙個結點,而在指標域,它是乙個值

lisp 首尾節點閉合 鍊錶首尾節點的常規方案

本表對基本煉表處理操作分別以五種常用的定義方案給出其實現方法。這類 用於簡單的 使用內嵌煉表處理 的應用程式。迴圈,永遠非空 頭插入 head next head 在x節點後插入t節點 t next x next x next t 刪除x後的節點 x next x next next 遍歷迴圈 t ...

Lisp語言 雜湊表 hash table

雜湊表,也就是hash table,在程式設計過程中會經常使用到,它以 關鍵字 數值 這樣的對應關係儲存資料,適合用於儲存那些需要通過關鍵字查詢數值的資料。再說,這種涉及理論的高深話題也不是我這種半途出家的人能說明白的,就是叫我講我也不一定講的清楚。說來慚愧,在剛開始工作的第一年中,我幾乎是在完全無...

lintcode 鍊錶 刪除鍊錶中的元素

刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5 判斷鍊錶是否為空,若是,返回null,若不是,進行下一步 判斷鍊錶第乙個結點是否為要刪除的結點,若是,將head指標向後移,若不是,無需操作 定義指標pre,判斷當...