数据结构严蔚敏算法设计习题解答

  • 第一章 绪论
    • 1.16
    • 1.17
    • 1.19
    • 1.20
  • 第二章 线性表
    • 2.10
    • 2.11
    • 2.12
    • 2.13
    • 2.14
    • 2.15
    • 2.16
  • 第三章 栈与队列
  • 第四章 串
  • 第五章 数组与广义表
  • 第六章 树和二叉树
  • 第七章 图
  • 第八章 动态存储管理
  • 第九章 查找
  • 第十章 内部排序
  • 第十一章 外部排序
  • 第十二章 文件

第一章 绪论

1.16

#include<iostream>
using namespace std;
inline void sort_asc(int &a,int &b,int &c)
{int tmp;if(c>a){tmp=a;a=c;c=tmp;}if(c>b){tmp=c;c=b;b=tmp;}if(b>a){tmp=b;b=a;a=tmp;}
}
int main()
{int a,b,c;cin>>a>>b>>c;sort_asc(a,b,c);cout<<a<<" "<<b<<" "<<c;return 0;
}

1.17

k阶斐波那契数列

#include<iostream>
using namespace std;int fib(int k,int m)
{if(k<2||m<0) return -1;if(m<k-1)return 0;else if((m==k-1||m==k))return 1;else{int *temp=new int[k],i;for(i=1;i<=k-1;++i)temp[i]=0;temp[0]=temp[k-1]=1;int s=0,sum;for(i=k+1;i<=m;++i){sum=2*temp[(i-1)%k]-s;s=temp[i%k];temp[i%k]=sum;}int r=temp[m%k];return r;}
}int main()
{int k,m;cin>>k>>m;cout<<fib(k,m);return 0;
}

1.19

#include<iostream>
#include<cmath>
using namespace std;
#define max_int 200000000
#define arrsize 20int a[arrsize]={1};int main()
{int n;cin>>n;for(int i=2;i<n;++i){a[i-1]=a[i-2]*2*(i-1);cout<<a[i-1]<<endl;if(max_int/(2*i)<a[i-1]){cout<<"OVERFLOW"<<endl;break;}}return 0;
}

1.20

#include<iostream>
#include<cmath>
using namespace std;
#define maxsize1 1000
#define Bigint 9223372036854775807
long long a[maxsize1];int main()
{int n,x;cin>>n>>x;long long k=0,t=0;for(int i=0;i<=n;++i){cin>>a[i];if(!k)k=1;else k*=x;if(Bigint-a[i]*k<t){cout<<"OVERFLOW";break;}    t+=a[i]*k;cout<<t<<endl;}return 0;
}

第二章 线性表

2.10

#include<iostream>
#include<cstdlib>
using namespace std;
#define MaxSize 1000
typedef int ElemType;
typedef int Status;
struct SqList{ElemType *elem;int length;int listsize;
};Status DeleteK(SqList &a,int i,int k)
{if(i<1||k<1||i+k-1>a.length)return 0;else{for(int j=i-1;j<a.length;++j){a.elem[j]=a.elem[j+k];}a.length-=k;}return 1;
}int main()
{int n;cin>>n;SqList l;l.elem=(ElemType*)malloc(n*sizeof(ElemType));l.listsize=MaxSize;l.length=0;for(int i=0;i<n;++i){l.elem[i]=i;++l.length;}int i,k;cin>>i>>k;if(DeleteK(l,i,k)){for(int j=0;j<l.length;++j){cout<<l.elem[j]<<" ";}}else cout<<-1<<endl;return 0;
}

2.11

#include<iostream>
#include<cstdlib>
using namespace std;
#define maxSize 100struct SqList{int *elem;int length;
};int main()
{SqList l;l.length=0;l.elem=(int *)malloc(maxSize*(sizeof(int)));int n;cin>>n;for(int i=0;i<n;++i){l.elem[i]=i*2;++l.length;}int e;cin>>e;for(int i=0;i<n;++i){if(l.elem[i]>e){for(int j=l.length;j>i;--j){l.elem[j]=l.elem[j-1];}l.elem[i]=e;++l.length;break;}}for(int i=0;i<l.length;++i){cout<<l.elem[i]<<" ";}
}

2.12

#include<iostream>
using namespace std;int main()
{string s1,s2;getline(cin,s1);getline(cin,s2);int k=0,len1=s1.size(),len2=s2.size();for(int i=0;i<len1&&i<len2;++i){if(s1[i]==s2[i])++k;}if(s1[k]==s2[k])cout<<"A=B"<<endl;else if(s1[k]>s1[k])cout<<"A>B"<<endl;else cout<<"A<B"<<endl;return 0;
}

2.13

#include<iostream>
using namespace std;typedef struct LL{int data;LL *next;
}*link;int main()
{link L=new LL,q=L;L->next=NULL;int n;cin>>n;for(int i=0;i<n;++i){link p=new LL;p->data=i;p->next=q->next;q->next=p;q=p;}int e,cnt=0;cin>>e;q=L->next;while(q&&q->data!=e){q=q->next;++cnt;}if(q)cout<<cnt<<endl;else cout<<"NOT FIND"<<endl;return 0;
}

2.14

#include<iostream>
using namespace std;typedef struct LL{int data;LL *next;
}*lk;int main()
{lk L=new LL,q=L;q->next=NULL;int cnt=0;do{lk p=new LL;int e;cin>>e;p->data=e;p->next=q->next;q->next=p;q=p;++cnt;}while(q->data!=-1);cout<<cnt-1<<endl;
}

2.15

#include<iostream>
using namespace std;typedef struct LL
{int data;LL *next;
}*lk;int main()
{int n,m;cin>>n>>m;lk ha,hb,p,q;ha=new LL;ha->next=NULL;hb=new LL;hb->next=NULL;lk qa=ha,qb=hb;for(int i=0;i<n;++i){lk pa=new LL;pa->data=i*2;pa->next=qa->next;qa->next=pa;qa=pa;}for(int i=0;i<m;++i){lk pb=new LL;pb->data=i*2+1;pb->next=qb->next;qb->next=pb;qb=pb;}lk hc=ha;qa->next=hb->next;lk pc=hc->next;for(int i=0;i<n+m;++i){cout<<pc->data<<" ";pc=pc->next;}return 0;
}

2.16

#include<iostream>
using namespace std;typedef struct LL{int data;LL *next;
}*lk;int DeleteAndInsertSub(lk la, lk lb,int i,int j,int len){if(i<1||j<1||len<=0)return -1;lk p=la,q;int k;if(i>1&&j>1){k=0;while(k<i-1){q=p;p=p->next;++k;}k=0;while(k<len-1){p=p->next;++k;}k=1;lk pb=lb;while(k<j-1){pb=pb->next;++k;} lk tmp=q->next;q->next=p->next;p->next=pb->next;pb->next=tmp;}else if(i==1&&j==1){lk tmp=la,pre;for(int t=0;t<len;++t){pre=la;la=la->next;}lk tmp2=lb;lb=tmp;pre->next=tmp2;}return 1;
}int main()
{lk la=new LL,lb=new LL;lk pa=la,pb=lb;pa->next=pb->next=NULL;int n,e1,e2;cin>>n;for(int i=0;i<n;++i){lk p=new LL,q=new LL;cin>>e1>>e2;pa->data=e1;pb->data=e2;p->next=pa->next;q->next=pb->next;pa->next=p;pb->next=q;pa=p;pb=q;}pa->data=-1;pb->data=-2;cout<<"\n";int judge;judge=DeleteAndInsertSub(la,lb,2,3,2);if(judge){lk p1=la,p2=lb;while(p1->next!=NULL){cout<<p1->data<<" ";p1=p1->next;}cout<<"\n";while(p2->next!=NULL){cout<<p2->data<<" ";p2=p2->next;}}else{cout<<"invalid input"<<endl;}return 0;
}

第三章 栈与队列

第四章 串

第五章 数组与广义表

第六章 树和二叉树

第七章 图

第八章 动态存储管理

第九章 查找

第十章 内部排序

第十一章 外部排序

第十二章 文件

数据结构严蔚敏算法设计习题解答(逐渐更新)(更新于2020.11.20)相关推荐

  1. 【计算机】数据结构-严蔚敏/清华大学P3

    [计算机]数据结构-严蔚敏/清华大学P1 第二章    线  性表 线性结构 是 一个数据元素的有序(次序)集 线性结构的基本特征: 1.  集合中必存在唯一的一个"第一元素": ...

  2. 构建线性表的c语言代码,数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码...

    1.运行环境 这里说明一下这里所有的C语言代码都是基于code::blocks 20.03编译运行的.当然一些其他集成开发环境应该也是可以的,个人不太喜欢功能太过强大的IDE,因为那同样意味着相关设置 ...

  3. 数据结构 严蔚敏 第二章 线性表

    数据结构 严蔚敏 第二章 线性表 线性表:由n个(n>=0)数据特征相同的元素构成的有限序列. 线性表的类型定义表示和实现 顺序表 存储单元地址连续 随机存取 若每个元素占用 m 个存储单元,以 ...

  4. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  5. 数据结构严蔚敏清华大学pdf_2019年清华大学自动化系控制工程专业大数据方向考研经验分享...

    基本情况(以下内容仅代表个人观点) 我目前就读于西南某双非石油工程专业,2019考研报考清华大学自动化系大数据工程专业,一志愿复试被刷,侥幸调剂录取至微电子系.初试总分346分(政治-63 + 英语一 ...

  6. 数据结构----严蔚敏

    最近一直想找一本纯数据结构的书来学习,找来找去都没有找到一本合适的书籍,相比之下国内的书籍之中,严蔚敏和吴伟民的还算是经典版了,很多国内其他数据结构教材都参考这本书的.但缺点是很多都是伪代码,对编程初 ...

  7. 数据结构(严蔚敏版)习题集第三章课后标新号习题答案

    #include<iostream> #include<cctype> using namespace std; /****预定义****/ #define STACK_INI ...

  8. 有关数据结构基础知识(数据结构 严蔚敏版)

    1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科 2. 研究包括逻辑结构和存储结构 1) 逻辑结构(从具体问题抽象出来的数学模型)分为 集合结构 线性结构 树 ...

  9. 严蔚敏算法约瑟夫环_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...

    目录 缓存引爆链表 链表 单链表 双向链表 循环链表 双向循环链表 LinkedHashMap实现LRU缓存,源码解析(JDK1.8) 算法 爬楼梯 算法 反转链表 算法 链表环检测 缓存引爆链表 存 ...

  10. 数据结构练习题——图(算法设计题)

    ​ (1)分别以邻接矩阵和邻接表作为存储结构,实现以下图的基本操作: ① 增加一个新顶点v,InsertVex(G, v): ② 删除顶点v及其相关的边,DeleteVex(G, v); ③ 增加一条 ...

最新文章

  1. 【arduino】arduino ISP下载程序方法,用arduino uno给M5 Module DC MOTOR下载程序
  2. Cosmos VS Palodat
  3. antdesign的表单中的下拉框设置默认值BUG处理
  4. Build 2017 | 一文看懂微软 Build 2017 大会:让 AI 走向边缘
  5. mongodb 可是化_Mongodb GUI可视化管理工具推荐
  6. layui 自定义request_Layui自定义模块的使用方式
  7. zabbix3.0.4导入中文模板后乱码问题处理
  8. 英语数字的 android,英语数字听力手机版
  9. IntelliJ IDEA常用插件介绍和配置
  10. Altium Designer四层板设计教程
  11. Fabric系列 - 锚节点
  12. 通过冥想解除困意,提升精神
  13. cas66-71-7|1,10-菲啰啉有机配体/ 1,10-Phen/邻菲啰啉/邻二氮杂菲
  14. OpenHarmony鸿蒙相关资料
  15. 代码随想录训练营day2
  16. 【Win】查看Bing壁纸每天更新的图片
  17. 回忆高中数学--概述“奇变偶不变,符号看象限”
  18. android浪漫樱花凋零动态壁纸应用源码
  19. 汽车加油问题(贪心算法)
  20. Web追踪——CNAME Cloaking

热门文章

  1. Visio 2019中文版软件下载和安装教程
  2. NXP- 5744P-MATLAB安装教程
  3. linux 端口映射 命令
  4. c语言程序设计输出函数,输出函数C语言程序设计.pdf
  5. JAVA视频MP4文件加密,Html5播放器调用
  6. java并发编程实战
  7. 计算机毕业设计ssm+sqlserver房屋租赁管理系统
  8. 2022年由电子科技到整体科技
  9. Python打地鼠小游戏源代码
  10. linux cd 命令详解,Linux命令详解之–cd命令