对于地址不连续的比如链表,链队之类的,结点与结点之间靠next指针连接(假设单链).
那么,从链首找到链中间某个元素需要一直沿next指针寻找,
麻烦在于编程不方便.
可否在形式上统一对连续空间和非连续空间的访问方式,
通过增加一个智能指针,记关键字为smart,将结点的next指针用smart标记
比如链表:
typedef struct LNode
{
ElemType data;
smart struct LNode * next;
}LNode, *LinkList;
LinkList L;
smart p = L ;
//初始化
//各项链表操作
p = p+i ; //访问第i个结点
这样不用通过while(p->next != NULL) {p= p->next;}
访问方式及其简便,就像访问连续地址的数组一样,这不是很好吗?
当然, 运行时本质上仍然不能直接访问,我想做到的只是,编程简单方便,无可厚非.
大家不要抱着一个"不存在就是不合理的"想法,希望可以共同探讨.
posted on 2006-12-22 12:49
哈哈 阅读(833)
评论(6) 编辑 收藏 引用