2.32.c

来自「数据结构习题及答案」· C语言 代码 · 共 24 行

C
24
字号
2.32②  已知有一个单向循环链表,其每个结点中
含三个域:prev、data和next,其中data为数据域,
next为指向后继结点的指针域,prev也为指针域,
但它的值为空(NULL),试编写算法将此单向循环链
表改为双向循环链表,即使prev成为指向前驱结点
的指针域。

实现下列函数:
void PerfectBiLink(BiLinkList &CL);

双向循环链表类型定义如下:
typedef struct BiNode {
    ElemType       data;
    int            freq; // 2.38题用
    struct BiNode *prev,
                  *next;
} BiNode, *BiLinkList;
void PerfectBiLink(BiLinkList &CL)
{
    BiLinkList q;
    for(q=CL;!q->next->prev;q=q->next) q->next->prev=q;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?