专栏首页C语言入门到精通数据结构 | 每日一练(29)

数据结构 | 每日一练(29)

数据结构

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下

——老子

1

每日一练

1.阅读以下算法,填充空格,使其成为完整的算法。其功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。

CONST maxlen=30

TYPE sqlisttp=RECORD

elem:ARRAY[1..maxlen] OF integer;

last:0..maxlen

END;

PROC exam21(VAR L:sqlisttp);

j:=1; i:=2;

WHILE (1)______ DO

[ IF L.elem[i]<>L.elem[j] THEN [ (2)_______; (3)______];

i:=i+1 ]

(4) ________;

ENDP;

2.

对于给定的线性链表 head , 下面的程序过程实现了按结点值非降次序输出链表中的所有结点,在每次输出一个结点时,就把刚输出的结点从链表中删去。请在划线处填上适当的内容,使之成为一个完整的程序过程,每个空框只填一个语句。

TYPE nodeptr =^ nodetype;

nodetype = RECORD

data : integer;link : nodeptr

END;

VAR head : nodeptr;

PROCEDURE sort_output_delete (head : nodeptr);

VAR p,q,r,s: nodeptr;

BEGIN WHILE head <> NIL DO

BEGIN p:= NIL ;q:= head;r:= q ;s:=q^.link ;

WHILE s <> NIL DO

BEGIN IF s^.data < q^.data THEN BEGIN (1)__; (2)___ END ;

r:= s ; (3)___

END;

write(q^.data : 5) ;

IF p=NIL THEN (4)___ ELSE (5)____ ;

dispose (q) ;

END;

writeln

END;

正确答案

1.

(1)i<=L.last ∥L.last 为元素个数

(2)j:=j+1 ∥有值不相等的元素

(3)L.elem[j]:=L.elem[i] ∥元素前移

(4)L.last:=j ∥元素个数

2.

(1)p:=r;∥r指向工作指针s的前驱,p指向最小值的前驱。

(2)q:=s;∥q指向最小值结点,s是工作指针

(3)s:=s^.link∥工作指针后移

(4)head:=head^.next;∥第一个结点值最小;

(5)p^link:=q^.link;∥跨过被删结点(即删除一结点)

如果您觉得本篇文章对您有作用,请转发给更多的人,点一下好看就是对小编的最大支持!

-end-

本文分享自微信公众号 - C语言(ycl_printf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构 | 每日一练(26)

    ——老子

    闫小林
  • 谷歌的Android系统对比华为的鸿蒙系统:差距无法接受?

    华为的鸿蒙系统与谷歌的Android系统,究竟还有多大差距?其实中芯国际创始人张汝京博士已经给了我们解释,两者的不同:鸿蒙系统是微内核设计,而安卓是基于宏内核的...

    闫小林
  • 编程小白 | 每日一练(143)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • 如何分析request download状态一直处于running的问题

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang
  • 【SQL 基础】游标(curosr)

    也许大家对数据库中游标都不陌生,但对于其概念可能有时又会有些模糊,游标到底是什么? 为了使大家对游标有个清晰的认识,本文将介绍Oracle中游标(curosr)...

    TeacherWhat
  • 我们不一样!老司机教你用C语言制作简单实用的撩妹神器!

    你以为C语言就是提供一种编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言吗?你以为C语言就只是以一个标准规格写出的C语言程序可...

    猫咪爱分享
  • libgdx 概述

    libgdx 是一个跨平台的2D/3D的游戏开发框架,由Java/C/C++语言编写而成,基于 Apache License 2.0 协议,对商业使用和非商业使...

    阳光岛主
  • Python 复习

    radaren
  • 图文实践 RabbitMQ 不同类型交换机消息投递机制

    生产者发布消息、消费者接收消息,但是这中间的消息是怎么传递的,就用到了一个很重要的概念 交换机(Exchange),RabbitMQ 消息投递到交换机上之后,通...

    五月君
  • 这个折纸技术教你制作微型机器人

      在西雅图的2015国际机器人与自动化学术研讨会(ICRA)上,美国麻省理工学院和德国慕尼黑工业大学研究人员发布的研究成果引发广泛关注。论文题目挺长,《不插电...

    机器人网

扫码关注云+社区

领取腾讯云代金券