含乙個鏈域的結點組成的線性表的雙向查詢

2021-10-01 08:45:05 字數 919 閱讀 1786

試設計一種環形表,使表的每個結點只包含乙個鏈域而又能夠有效地對其進行兩個方向的查詢。然後,設計乙個演算法,從表的一端開始,按順時針方向訪問這個表的每個結點。

這道題利用異或運算的性質,可以得到(prev ^ next) ^ next = prev; (prev ^ next) ^ prev = next。故而只用存prev ^ next就可以了。

#include

#include

typedef

struct node

*link;

link create

(link *prevnode, link *nextnode)

p->linkdata =

(link)((

long

long

)prev ^

(long

long

)head)

; head->linkdata =

(link)((

long

long

)firstp ^

(long

long

)p);

*prevnode = p;

*nextnode = firstp;

return head;

}void

clockwise

(link head, link pre)

printf

("\n");

}void

anticlockwise

(link head, link nex)

printf

("\n");

}int

main()

線性表應用 建立乙個隨機數 鍊錶獲得中間結點

1 方法一 生成鍊錶 計算節點個數 找到中間 2 方法二 status getmidnode linklist l,elemtype e 用兩個指標 快指標是慢指標移動速度的兩倍 快指標移動到結尾 則慢指標移動到 這種方法是第一種方法速度三倍 315 else 1619 20 21 e mid da...

一 線性表以及線性表的順序儲存結構

1 線性表的定義 2 線性表的性質 3 順序儲存結構 線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。4 插入元素 演算法描述 5 刪除元素 演算法描述 6 可復用順序線性表 例項 相關操作的定義 ifndef seqlist h define seqlist h in...

乙個URL的組成

2016 05 08 22 12 659人閱讀收藏 舉報 android 26 url的組成 url由三部分組成 協議型別,主機名和路徑及檔名。通過url可以指定的主要有以下幾種 http ftp gopher telnet file等。url的組成 url的組成 協議 1 protocol 協議 ...