問答題
【簡答題】假設(shè)在算法描述語言中引入指針的二元運(yùn)算“異或”,若a和b為指針,則a⊕b的運(yùn)算結(jié)果仍為原指針類型,且a⊕(a⊕b)=(a⊕a)⊕b=b;(a⊕b)⊕b=a⊕(b⊕b)=a。則可利用一個(gè)指針域來實(shí)現(xiàn)雙向鏈表L。鏈表L中的每個(gè)結(jié)點(diǎn)只含兩個(gè)域:data域和LRPtr域,其中LRPtr域存放該結(jié)點(diǎn)的左鄰與右鄰結(jié)點(diǎn)指針(不存在時(shí)為NULL)的異或。若設(shè)指針L.Left指向鏈表中的最左結(jié)點(diǎn),L.Right指向鏈表中的最右結(jié)點(diǎn),則可實(shí)現(xiàn)從左向右或從右向左遍歷此雙向鏈表的操作。試寫一算法按任一方向依次輸出鏈表中各元素的值。
答案:
