對(duì)于地址不連續(xù)的比如鏈表,鏈隊(duì)之類的,結(jié)點(diǎn)與結(jié)點(diǎn)之間靠next指針連接(假設(shè)單鏈).
那么,從鏈?zhǔn)渍业芥溨虚g某個(gè)元素需要一直沿next指針尋找,
麻煩在于編程不方便.
可否在形式上統(tǒng)一對(duì)連續(xù)空間和非連續(xù)空間的訪問方式,
通過增加一個(gè)智能指針,記關(guān)鍵字為smart,將結(jié)點(diǎn)的next指針用smart標(biāo)記
比如鏈表:
typedef struct LNode
{
?? ElemType data;
?? smart?? struct LNode * next;
}LNode, *LinkList;
LinkList L;
smart? p = L?;
//初始化
//各項(xiàng)鏈表操作
p = p+i ; //訪問第i個(gè)結(jié)點(diǎn)
這樣不用通過while(p->next != NULL) {p= p->next;}
訪問方式及其簡(jiǎn)便,就像訪問連續(xù)地址的數(shù)組一樣,這不是很好嗎?
當(dāng)然, 運(yùn)行時(shí)本質(zhì)上仍然不能直接訪問,我想做到的只是,編程簡(jiǎn)單方便,無可厚非.
大家不要抱著一個(gè)"不存在就是不合理的"想法,希望可以共同探討.
posted on 2006-12-22 12:49
哈哈 閱讀(839)
評(píng)論(6) 編輯 收藏 引用