码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【程序填空】单链表类定义 C++


    温馨提示:本题为深大OJ原题,深大的同学请勿直接抄袭,以免出现多个代码相同以致评0分的情况,代码和思路仅供参考,希望大家能逐步成长。

    目录

    题目描述

    思路分析

    AC代码 

    题目描述

    已知带头结点的单链表的类界面和部分函数定义

    请根据主函数的要求,完成单链表类的其他函数填空

    输入

    第1行先输入n表示有n个数据,接着输入n个数据

    第2行输入要插入的位置和新数据

    第3行输入要插入的位置和新数据

    第4行输入要删除的位置

    第5行输入要删除的位置

    第6行输入要查找的位置

    第7行输入要查找的位置

    输出

    数据之间用空格隔开

    第1行输出创建后的单链表内容

    接着每一次操作后,如果操作成功则输出整个单链表内容,如果操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出表内容

    输入样例1

    5 1 2 3 4 5
    6 666
    9 99
    1
    6
    1
    0

    输出样例1

    1 2 3 4 5
    1 2 3 4 5 666
    error
    2 3 4 5 666
    error
    2
    error

    思路分析

    以下思路均为本人习惯思维,仅供参考。 

    注意到是带头节点的单链表,头节点不存储数据,这样我们的插入和删除以及一些其他的操作都不需要区分是不是头节点。

    每个操作上来先判断操作失败的情况,插入和删除还有查找都去判断位置是否合法,肯定不能小于1和大于size。

    接下来就是遍历链表问题,插入和删除都需要遍历,这代码长得都一样,记住就行。

    输出格式还是那样,尾部没有空格的就是先输出前n-1个,最后输出最后一个和换行。

    国庆快乐。

    AC代码 

    1. //以下完成其他类函数定义
    2. int LinkList::LL_insert(int item,int i){
    3. if(i<1||i>size+1)
    4. return ERROR;
    5. ListNode*p=head;
    6. int j=1;
    7. while(j++<i){
    8. p=p->next;
    9. }
    10. ListNode*q=new ListNode();
    11. q->data=item;
    12. q->next=p->next;
    13. p->next=q;
    14. size++;
    15. return OK;
    16. }
    17. int LinkList::LL_del(int i){
    18. if(i<1||i>size)
    19. return ERROR;
    20. ListNode*p=head,*q=head->next;
    21. int j=1;
    22. while(j++<i){
    23. p=p->next;
    24. q=q->next;
    25. }
    26. p->next=q->next;
    27. delete q;
    28. size--;
    29. return OK;
    30. }
    31. int LinkList::LL_get(int i){
    32. if(i<1||i>size)
    33. return ERROR;
    34. ListNode*p=head->next;
    35. int j=1;
    36. while(j++<i){
    37. p=p->next;
    38. }
    39. return p->data;
    40. }
    41. void LinkList::LL_print(){
    42. ListNode*p=head->next;
    43. for(int i=1;i<size;i++){
    44. cout<<p->data<<' ';
    45. p=p->next;
    46. }
    47. cout<<p->data<<endl;
    48. }
    49. ListNode* LinkList::index(int i){return NULL;}
    50. //主函数定义
  • 相关阅读:
    windows服务器下jenkins c语言打包的一些经验share
    java集合类史上最细讲解 - Collections工具类
    Linux 安装 CenOS7 MySQL - 8.0.26
    springboot+基于web的传染病信息管理系统的设计与实现 毕业设计-附源码221124
    在C# WinForms应用程序中安装,配置和使用MetroFramework
    快递鸟顺丰、申通物流查询类通用接口文档
    FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
    概率 | 【提神醒脑】自用笔记串联二 —— 数字特征、大数定律、统计量
    Dubbo3应用开发—Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用)
    Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标
  • 原文地址:https://blog.csdn.net/weixin_62264287/article/details/127091022
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号