数据结构题集c语言版题目与答案,数据结构题集(C语言版)答案 - 严蔚敏编著...

本文介绍了利用异或指针实现双向链表的操作,包括按任意方向遍历、在指定位置插入节点和删除节点的算法。此外,还涉及双向循环链表的改造和按访问频度排序的操作。提供了详细的代码实现。
摘要由CSDN通过智能技术生成

q=p;

p=p->next;

q->next=pt3->next; pt3->next=q; pt3=pt3->next; } } q=L; free(q); return OK; }

在2.34至2.36题中

\异或指针双向链表\类型XorLinkedList和指针异或函数XorP定义为: typedef struct XorNode { char data;

struct XorNode *LRPtr; } XorNode *XorPointer;

typede struct { //无头结点的异或指针双向链表 XorPointer Left

Right; //分别指向链表的左侧和右端 } XorLinkedList;

XorPointer XorP(XorPointer p XorPointer q);

// 指针异或函数XorP返回指针p和q的异或值 2.34 假设在算法描述语言中引入指针的二元运算\异或\若a和b为指针

则a⊕b的运算结果仍为原指针类型 且

a⊕(a⊕b)=(a⊕a)⊕b=b (a⊕b)⊕b=a⊕(b⊕b)=a

则可利用一个指针域来实现双向链表L

链表L中的每个结点只含两个域:data域和LRPtr域

其中LRPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL)的异或 若设指针L.Left指向链表中的最左结点 L.Right指向链表中的最右结点

则可实现从左向右或从右向左遍历此双向链表的操作 试写一算法按任一方向依次输出链表中各元素的值

解:

Status TraversingLinkList(XorLinkedList &L char d) {

XorPointer p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值