已知有一个单向循环链表,其每个结点中含三个域:prior,data 和next,其中data为数据域,next为指向后继
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/23 07:59:48
已知有一个单向循环链表,其每个结点中含三个域:prior,data 和next,其中data为数据域,next为指向后继结点指针域,pre也为指针域,但它的值为空(NULL),试编写算法将此单向循环链表改为双向循环链表,即使pre成为指向前驱结点的指针域.
![已知有一个单向循环链表,其每个结点中含三个域:prior,data 和next,其中data为数据域,next为指向后继](/uploads/image/z/6582000-48-0.jpg?t=%E5%B7%B2%E7%9F%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E5%8D%95%E5%90%91%E5%BE%AA%E7%8E%AF%E9%93%BE%E8%A1%A8%2C%E5%85%B6%E6%AF%8F%E4%B8%AA%E7%BB%93%E7%82%B9%E4%B8%AD%E5%90%AB%E4%B8%89%E4%B8%AA%E5%9F%9F%3Aprior%2Cdata+%E5%92%8Cnext%2C%E5%85%B6%E4%B8%ADdata%E4%B8%BA%E6%95%B0%E6%8D%AE%E5%9F%9F%2Cnext%E4%B8%BA%E6%8C%87%E5%90%91%E5%90%8E%E7%BB%A7)
Node* list( Node* head )
{
node *p,*q;
p = head;
q = NULL;
while( p != NULL ) //一边遍历,一边加前向指针
{
p->prior = q; //关键句
q=p;
p = p->next;
}
return q; //返回双向链表的尾结点
}
有点不好理解,画图试试,一下就明白了.
{
node *p,*q;
p = head;
q = NULL;
while( p != NULL ) //一边遍历,一边加前向指针
{
p->prior = q; //关键句
q=p;
p = p->next;
}
return q; //返回双向链表的尾结点
}
有点不好理解,画图试试,一下就明白了.
已知有一个单向循环链表,其每个结点中含三个域:prior,data 和next,其中data为数据域,next为指向后继
若循环链表的结点具有数据域data和指针域next,H指向其头结点,该表具有一个结点的条件是()为真值
在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操
假定一个链栈的栈顶指针用top表示,每个结点的结构由一个数据域data和一个指针域组成,当p指向的结点进栈时
在一个头指针为L的循环链表中,指针域为next,指针P所指结点(此结点是尾结点)的条件是( ).
假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针.已知s为指向链表中第s个元素,试编写算法
在数据结构中p是动态申请的一个结点.那么p->data=x; p->next=NULL; r->next=p; r=r-
在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右...
关于C语言链表:p->next是表示指向下一个位置的结点还是p本身的存储域?p->next=q->next怎么理解呢?
4. 在双向链表中,每个结点包含有两个指针域,一个指向其_____ ______结点,另一个指向其_____ ____结
已知带头结点的单链表L,指针P指向L链表中的一个结点为(非首结点、非尾结点),
已知指针 p 指向某单链表中的一个结点,则判别该结点有且仅有一个后继结点的条件是什么