数据结构题集c语言版题目与答案,数据结构题集(C语言版)答案 - 严蔚敏编著...
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
left right;
if(d=='l'||d=='L'){ p=L.Left; left=NULL;
while(p!=NULL){
VisitingData(p->data); left=p; p=XorP(left p->LRPtr); } } else
if(d=='r'||d=='R'){ p=L.Right; right=NULL; while(p!=NULL){
VisitingData(p->data); right=p;
p=XorP(p->LRPtr right);
} }
else return ERROR; return OK; }
2.35 采用2.34题所述的存储结构
写出在第i个结点之前插入一个结点的算法
2.36 采用2.34题所述的存储结构 写出删除第i个结点的算法
2.37 设以带头结点的双向循环链表表示的线性表 试写一时间复杂度O(n)的算法 将L改造为
解:
// 将双向链表L=(a1 a2 ...
an)改造为(a1 a3 ... an
... a2)
Status ListChange_DuL(DuLinkList &L) {
int i;
DuLinkList p q r;
p=L->next; r=L->pre; i=1;
while(p!=r){ if(i%2==0){ q=p;
p=p->next; // 删除结点
q->pre->next=q->next; q->next->pre=q->pre; // 插入到头结点的左面 q->pre=r->next->pre; r->next->pre=q; q->next=r->next; r->next=q; }
else p=p->next; i++; }
return OK; }
2.38 设有一个双向循环链表 每个结点中除有pre data和next三个域外
还增设了一个访问频度域freq 在链表被起用之前
频度域freq的值均初始化为零 而每当对链表进行一次Locate(L x)的操作后
被访问的结点(即元素值等于x的结点)中的频度域freq的值便增1 同时调整链表中结点之间的次序
使其按访问频度非递增的次序顺序排列
以便始终保持被频繁访问的结点总是靠近表头结点 试编写符合上述要求的Locate操作的算法
解:
DuLinkList ListLocate_DuL(DuLinkList &L ElemType e) {
DuLinkList p q;
p=L->next;
while(p!=L && p->data!=e) p=p->next; if(p==L) return NULL; else{
p->freq++; // 删除结点
p->pre->next=p->next; p->next->pre=p->pre; // 插入到合适的位置 q=L->next;
while(q!=L && q->freq>p->freq) q=q->next; if(q==L){
p->next=q->next; q->next=p; p->pre=q->pre; q->pre=p; } else{
// 在q之前插入
p->next=q->pre->next; q->pre->next=p; p->pre=q->pre; q->pre=p; }
return p; } }
在2.39至2.40题中
稀疏多项式采用的顺序存储结构SqPoly定义为 typedef struct { int coef; int exp; } PolyTerm;
typedef struct { //多项式的顺序存储结构 PolyTerm *data; int last; } SqPoly;
2.39 已知稀疏多项式 其中
数据结构题集c语言版题目与答案,数据结构题集(C语言版)答案 - 严蔚敏编著...相关推荐
- 数据结构(C语言版 严蔚敏 编著)课后习题答案
转自 https://blog.csdn.net/Bamboo_shui/article/details/72433523 (原文没第八章答案) 数据结构(C语言版 第2版)课后习题答案 严蔚敏 ...
- 湖南城市学院c语言试卷题目,英语四级、计算机二级--C语言应该怎样复习?考试有哪些题型?...
满意答案 bsthq888 2013.09.08 采纳率:52% 等级:11 已帮助:6497人 这个是大学生在校期间,所要获得的最基本的两个证书!很有必要拿到的!我考的是VF!C不晓得! 我在 ...
- 数据结构题集c语言版第七章答案,数据结构题集(C语言版)答案 - 严蔚敏编著...
C Temp); ListMinus_L(A Temp D); } 2.30 要求同2.29题 试对单链表编写算法 请释放A表中的无用结点空间 解: // 在A中删除既在B中出现又在C中出现的元素 并 ...
- 取多补少C语言,leetcode题目: 数字的补数 的C语言解法
题目链接 题目内容 给定一个正整数,输出它的补数.补数是对该数的二进制表示取反. 注意: 给定的整数保证在32位带符号整数的范围内. 你可以假定二进制数不包含前导零位. 示例 1: 输入: 5 输出: ...
- 嵌入式c语言笔试题目,考一考!嵌入式C语言面试题3道
原标题:考一考!嵌入式C语言面试题3道 题一: 程序编译的过程? 题二: ++i和i++的区别 题三: 用C语言实现字符串倒序. 题一答案: 预处理:预处理相当于根据预处理命令组装成新的C程 序,不过 ...
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- C语言经典题目(一)
分享之前和大家分享一本书叫做<厚黑学>,这本书可以了解一下社会现实,但是看这本书的时候切记,不可迷失自己.扉页的第一段话和大家分享一下:我自读书识字以来,就想为英雄豪杰,求之四书五经,茫无 ...
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(一)
这里用的是严蔚敏版<数据结构 (C语言版)>和<数据结构题集>,深感自己的代码写得又渣又无力,打算把这本书好好琢磨透彻,里面的算法和模板都实现一遍,题目也都做一遍.最终能够做到 ...
- c语言采用顺序存储结构存储串,试编写算法实现串的置换操作,串-第4章-《数据结构题集》答案解析-严蔚敏吴伟民版...
习题集解析部分 第4章 串 --<数据结构题集>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛<数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明 课本源码合 ...
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...
栈的顺序表实现 1 #include <iostream> 2 #include <stdlib.h> 3 #include <stdio.h> 4 #define ...
最新文章
- nginx如何解决超长请求串
- mysql损坏表修复
- 如何测量PN中的耗散层两边的电位差?
- 双人五子棋对战(需要EasyX图像库)
- Unencrypted connection refused. Goodbye. Connection closed by foreign host.
- java 用来查找输出的函数_Solr复杂查询一:函数查询
- mongoudb 等于_MongoDB常用操作
- 《编程珠玑》笔记3 数据结构选择
- python导入同目录下的模块_如何从同一目录下的模块导入?
- c语言for循环 wdtcn,MSP430F149的DS18B20C语言程序
- shouji android输入法,安卓手机主流输入法对比
- 长寿的人会有的8个健康理念
- C# 把list中的数据转成规定格式的json格式
- rocketmq mysql_聊聊rocketmq-mysql的BinlogPositionManager
- Java Lambda 策略模式
- regnam r语言_求助:R语言进行增加值分解的一部分代码看不懂,求大神过目
- DoS攻击原理与实战(LOIC+Hping3)
- 【转载】扫描渗透等工具介绍
- Yocto理论篇 | OpenEmbedded构建系统之BitBake
- 一看就停不下来的中国史