数据结构
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下
——老子
1
每日一练
1.已知有如下定义的静态链表:
TYPE component=RECORD
data:elemtp;
next:0..maxsize
END
VAR stalist:ARRAY[0..maxsize] OF component;
以及三个指针:av 指向头结点,p 指向当前结点,pre 指向前驱结点,现要求修改静态链表中 next 域中的内容,使得该静态链表有双向链表的功能,从当前结点 p 既能往后查找,也能往前查找:
(1) 定义 next 域中的内容。(用老的 next 域中的值表示);
(2) 如何得到当前结点 p 的前驱(pre)的前驱,给出计算式;
(3) 如何得到 p 的后继,给出计算式;
正确答案
PS:如果有||,则表示后面的是注释
1.
(1)将next域变为两个域: pre和next,其值域均为0..maxsize。初始化时,头结点(下标为0的元素)其next域值为1,其pre域值为n(设n是元素个数,且n<maxsize)
(2) stalist[stalist[p].pre].pre;
(3) stalist[p].next;
-end-
你学习了么?
文 | 闫小林