【数据结构导论】自考笔试题:伪代码练习题汇总 1

目录

一、开源项目推荐

二、线性表的基本运算在单链表上的实现

(1)初始化

(2)插入 p 指向的新结点的操作 

(3)删除 *p 节点

三、循环链表 

(1)在单链表中

(2)在带有头结点的循环链表中

(3)只有尾指针 rear

四、双向循环链表

(1)每个结点有两个指针

(2)带头结点的双向循环链表 L 为空的条件

(3)p 指向待删结点,删除 *p 的操作

(4)p 所指结点的后面插入一个结点 *t 的操作 

五、栈的顺序实现 

(1)下溢 / 上溢

(2)进栈

(3)出栈

(4)取栈顶元素

六、栈的链接实现

七、二叉树的性质

八、二叉树遍历的递归实现

九、图的遍历

十、4 种排序方法 



一、开源项目推荐

【我的项目】数据结构导论_伪代码练习题icon-default.png?t=N7T8https://gitcode.com/qq_39720249/data_structure/overview【项目说明】

  • 数据结构导论:自学考试笔试题中关于伪代码的练习题集合


二、线性表的基本运算在单链表上的实现

(1)初始化

① 假设单链表的类型定义如下 

typedef struct node
{ DataType data; 
  struct node *next;
}node ,*LinkList;

算法 InitiateLinkList()实现单链表的初始化

LinkList InitiateLinkList( )   // 建立一个空的单链表
{ LinkList head;                 // 头指针
  head=malloc(sizeof(node));  // 动态构建一个结点,并定义为头结点
  head->next=NULL; 
  return head;
}  
// 空表由一个头指针 head 和一个头结点组成。
// head 指向新创建的结点,即头结点。
// 一个空单链表仅有一个头结点,它的指针域为 NULL。

② 在带头结点的单链表 L 中,第一个数据元素结点的指针为 L->next。

③ 设有一个单链表,若结点的指针域为 next,则指针 p 所指的结点为最后一个结点的条件是 p->next==NULL。工作指针 p->next 为 NULL 时,说明已经走到了表的尾部,这时已完成对所有结点的访问。


(2)插入 p 指向的新结点的操作 

① 设 r 指向单链表的最后一个结点,要在最一个结点之后插入 s 所指的结点,需执行的语句序列是:
r->next=s;r=s;r->next=NULL
② 将一个由指针 q 指向的结点插在单链表中由指针 p 所指向的结点之后的操作是:
q->next=p->next;p->next=q;

(3)删除 *p 节点

在一个单链表中,已知指针 q 指向指针 p 所指结点的前驱结点,则删除 *p 结点的操作语句是:

q->next=p->next


三、循环链表 

(1)在单链表中

在单链表中,如果让最后一个结点的指针域指向第一个结点可以构成循环链表:
① 只有头指针 head:
  1. 判断 P 所指结点为尾结点的条件:p->next==head;
  2. 判断指针 P 所指结点为首结点的条件: p==rear->next->next;
  3. 判断链表是否为空的条件:head->next==head。
② 有头指针 head 和尾指针 rear(说明:rear->next 指向头结点 head)。

(2)在带有头结点的循环链表中

在带有头结点的循环链表中,尾指针为 rear,判断指针 P 所指结点为首结点的条件是:

p==rear->next->next


(3)只有尾指针 rear

① 删除表首结点的操作可表示为:
p=rear->next->next;
rear->next->next=p->next;
free(p);
② 已知尾指针的单向循环链表在第一个结点后面插入一个新结点的时间复杂度为 O(1)。


四、双向循环链表

(1)每个结点有两个指针

  1. next 指针指向直接后继结点
  2. prior 指针指向直接前驱结点

(2)带头结点的双向循环链表 L 为空的条件

(L->next==L)&&(L->prior==L)


(3)p 指向待删结点,删除 *p 的操作

p->prior->next=p->next;
p->next->prior=p->prior;
free(p);

(4)p 所指结点的后面插入一个结点 *t 的操作 

t->prior=p;
t->next=p->next;
p->next->prior=t;
p->next=t; 


五、栈的顺序实现 

(1)下溢 / 上溢

  1. 当空栈,栈顶下标值 top=0,如果此时做出栈运算,则产生“下溢”。
  2. 当栈中的数据元素已经填满了,如果再进行进桟操作,会发生“上溢”。

(2)进栈

Int Push(SeqStk *stk,DataType x) // 若栈未满,元素 x 进栈 stk 中,否则提示出错信息
{if(stk->top==maxsize-1)          // 判断找是否满
{ error(“栈已满”);return 0;}
else { stk->top++;                 // 栈未满,top 值加 1
stk->data[stk->top]=x;             // 元素 x 进桟
return 1;}}

(3)出栈

Int Pop{SeqStk *stk)
{ if(EmptyStack(stk))    // 判断是否下溢(栈空)
{ error(“下溢”);return 0;}
else                        // 未下溢,栈顶元素出栈
{ stk->top--;               // top 值减 1
return 1;}}

 也可以理解为:原栈顶的下一个结点成为新的栈顶,即 top=top->next;


(4)取栈顶元素

DataType GetTop(SeqStk*stk)     // 取栈顶数据元素,栈顶数据元素逋过参数返回
{ if(EmptyStack(stk))
return NULLData;                  // 栈空,返回 NULLData
else return stk->data[stk->top];}  // 返回栈顶数据元素


六、栈的链接实现

(1)栈的链接实现称为链栈,链栈可以用带头结点的单链表来实现。
LS 指向链表的头结点,首结点是栈顶结点,LS->next 指向栈顶结点,尾结点为栈底结点。
(2)出栈操作始终是栈顶结点出栈,即删除头结点之后的结点:
原栈顶的下一个结点成为新的栈顶,即 top=top->next;
(3)链栈由于采用了链表的方式作为存储方式,各结点通过链域的连接组成栈,由于每个结点空间都是动态分配产生,链栈不用预先考虑容量的大小。
(4)入栈时,使用 malloc 申请空间后,用指针相连接,所以节点个数没有限制;但是出栈时,如果栈中的元素个数为 0,则不能继续出栈,所以需要判断当前栈是否为空。
综上,链表不需要判满,只需要判定是否为空即可。
(5)链栈 LS 中,Ls 一>next 指向栈顶结点,则新结点 *P 入栈的操作为:
P->next=LS->next; 和  LS->next=p;。


七、二叉树的性质



八、二叉树遍历的递归实现

  • 先序遍历:访问根结点;先序遍历左子树;先序遍历右子树。
  • 中序遍历:中序遍历左子树;访问根结点;中序遍历右子树。
  • 后序遍历:后序遍历左子树;后序遍历右子树;访问根结点。


九、图的遍历



十、4 种排序方法 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/736041.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

双指针问题2

文章目录 1. 有效三角形的个数(611)2. 查找总价格为目标值的两个商品(LCR179)3. 三数之和(15)4. 四数之和(18) 1. 有效三角形的个数(611) 题目描述&#xff…

Stable Diffusion初体验——基于机器学习通过神经网络的强大AI平台

文章目录 前言最新热门活动!!平台介绍 一.创建应用 Stable Diffusion WebUI初始化上传模型,VAE,lora 介绍sd模型,vae,lora模型进入应用文生图工作区调参区图生图 结语小程序活动——6.20火热上线&#x1f5…

消息队列MQ相关面试题

消息队列MQ相关面试题 1 RabbitMQ 1.1 你们项目中哪里用到了RabbitMQ ? 难易程度:☆☆☆ 出现频率:☆☆☆☆ 我们项目中很多地方都使用了RabbitMQ , RabbitMQ 是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 : 通过Fei…

阿里云服务器618没想到这么便宜,买早了!

2年前,我买了个服务器,租用服务器(ECS5)和网络宽带(1M),可以说是非常非常低的配置了。 当时5年的折扣力度最大,但是打完折后,价格依然要近3000多元。 最近看到阿里云618活…

LVGL8.3动画图像(太空人)

LVGL8.3 动画图像 1. 动画图像本质 我们知道电影属于视频,而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式,也就是说动画本质是一系列照片。所以 lvgl 依照这样的思想而定义了动画图像,所以在 lvgl 中动画图像类似于普…

element-plus 表单组件 之element-form

elment-plus的表单组件的标签有el-form,el-form-item。 单个el-form标签内包裹若干个el-form-item,el-form-item包裹具体的表单组件,如输入框组件,多选组件,日期组件等。 el-form组件的主要作用是:提供统一的布局给其他表单组件&…

setInterval 定时任务执行时间不准验证

一般在处理定时任务的时候都使用setInterval间隔定时调用任务。 setInterval(() > {console.log("interval"); }, 2 * 1000);我们定义的是两秒执行一次,但是浏览器实际执行的间隔时间只多不少。这是由于浏览器执行 JS 是单线程模式,使用se…

apksigner jarsigner.md

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、apksigner3.2 为 APK 签名3.3 验证…

电商爬虫API的定制开发:满足个性化需求的解决方案

一、引言 随着电子商务的蓬勃发展,电商数据成为了企业决策的重要依据。然而,电商数据的获取并非易事,特别是对于拥有个性化需求的企业来说,更是面临诸多挑战。为了满足这些个性化需求,电商爬虫API的定制开发成为了解决…

2024年综合艺术与媒体传播国际会议(ICIAMC 2024)

2024年综合艺术与媒体传播国际会议(ICIAMC 2024) 2024 International Conference on Integrated Arts and Media Communication (ICIAMC 2024) 会议地点:贵阳,中国 网址:www.iciamc.com 邮箱: iciamcsub-conf.com 投稿主题请注明:ICIAMC…

使用AGG里面的clip_box函数裁剪画布, 绘制裁剪后的图形

// 矩形裁剪图片, 透明 void agg_testImageClipbox_rgba32(unsigned char* buffer, unsigned int width, unsigned int height) {// 创建渲染缓冲区 agg::rendering_buffer rbuf;// BMP是上下倒置的,为了和GDI习惯相同,最后一个参数是负值。rbuf.attach…

使用API有效率地管理Dynadot域名,为文件夹中的域名统一设置whois信息

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

基于SSM+Vue+微信小程序的大学生就业平台系统+毕业论文

项目包含前台和后台两部分:多角色登录,功能完善,界面优美 前台主要功能实现:首页列表查看、求职信息管理、简历管理、面试邀请管理、个人中心等 后台主要功能实现:首页、个人中心、学生管理、企业管理、企业类型管理…

若依 ruoyi 显示隐藏搜索框 显示隐藏列

一、 显示隐藏搜索框 页面搜索关键字 showSearch,设置是否显示 隐藏: 显示: 二、自定义设置 显示隐藏列 1. 页面搜索关键字 right-toolbar,新增: :columns"columns" 2. js下 data(){return{}}中新增&am…

如何覆盖!important修饰的属性

最简单的方法 如果这个!important修饰的属性 是自己的写的,去掉这种写法,使用优先级的方式来写这个属性(.outter .inner 的优先级就会比 。outter的优先级高) 复杂的方法:用魔法打败魔法 但是这个样式来自于全局css&am…

【计算机毕业设计】185餐厅点餐微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

百度网盘的文件该怎么整理?不如试试这个整理工具

科学的文件架构 一键生成文件夹层级工具 极具妥帖的秩序感受 又是一周,好久不见,正琢磨着这次给大家带来点什么好东西,突然百度网盘的整理让我头疼不已,从我记事以来,这网盘已经整理过N遍了,总是乱了整理…

【权威出版/投稿优惠】2024年水利水电与能源环境科学国际会议(WRHEES 2024)

2024 International Conference on Water Resources, Hydropower, Energy and Environmental Science 2024年水利水电与能源环境科学国际会议 【会议信息】 会议简称:WRHEES 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:…

day2-web安全漏洞攻防-基础-弱口令、HTML注入(米斯特web渗透测试)

day2-web安全漏洞攻防-基础-弱口令、HTML注入(米斯特web渗透测试) 1,漏洞2,弱口令3,爆破(1)Burpsuite(2)攻击类型 4,HTML针剂注入 1,漏洞 挖掘和利…

DataStructure.时间和空间复杂度

时间和空间复杂度 【本节目标】1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例3.4.1 示例13.4.2 示例23.4.3 示例33.4.4 示例43.4.5 示例53.4.6 示例63.4.7 示例7 4.空间复杂度4.1 示…