Advertisement

北理工大二数据结构乐学编程题-约瑟夫问题、验证表、循环小数等题目分享及综教楼后的趣事...

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文档由北京理工大学大二学生整理,包含数据结构课程中关于约瑟夫问题、验证表和循环小数相关的编程练习题,并记录了学校综教楼周边的趣闻轶事。 1-1.约瑟夫问题 1-2.验证表 1-3.循环小数 2-1.双向约瑟夫问题 2-2.综教楼后的那个坑 2-3.孤独的运货员 2-4.一元多项式相加 2-5.一元多项式相乘 3-1.括号匹配 3-2.出栈序列 3-3.表达式求值 3-4.从中缀向后缀转换表达式 3-5.股票撮合系统 4-1.树的建立和基本操作 4-2.二叉树的建立与基本操作 4-3.二叉树的遍历序列还原 5-1.二叉哥的二叉树 5-2.排序二叉树 5-3.平衡二叉树 6-1.前缀码 6-2.哈夫曼树权值 6-3.博弈树 7-1.折半查找 7-2.堆排序 7-3.快速排序 8-1.图的广度优先遍历 8-2.计算工程完成的关键路径 8-3. 迷宫问题 8-4. 无向图的各连通分支

全部评论 (0)

还没有任何评论哟~
客服
客服
  • -...
    优质
    本文档由北京理工大学大二学生整理,包含数据结构课程中关于约瑟夫问题、验证表和循环小数相关的编程练习题,并记录了学校综教楼周边的趣闻轶事。 1-1.约瑟夫问题 1-2.验证表 1-3.循环小数 2-1.双向约瑟夫问题 2-2.综教楼后的那个坑 2-3.孤独的运货员 2-4.一元多项式相加 2-5.一元多项式相乘 3-1.括号匹配 3-2.出栈序列 3-3.表达式求值 3-4.从中缀向后缀转换表达式 3-5.股票撮合系统 4-1.树的建立和基本操作 4-2.二叉树的建立与基本操作 4-3.二叉树的遍历序列还原 5-1.二叉哥的二叉树 5-2.排序二叉树 5-3.平衡二叉树 6-1.前缀码 6-2.哈夫曼树权值 6-3.博弈树 7-1.折半查找 7-2.堆排序 7-3.快速排序 8-1.图的广度优先遍历 8-2.计算工程完成的关键路径 8-3. 迷宫问题 8-4. 无向图的各连通分支
  • 优质
    《约瑟夫环问题与数据结构》一文探讨了经典的约瑟夫斯置换问题,并分析了几种常用的数据结构在解决该问题时的应用和优化策略。 约瑟夫环算法的C++实现是数据结构中的常见问题之一。
  • 报告:
    优质
    本实验报告详细探讨了经典数学问题“约瑟夫环”的解决方案及其在数据结构中的实现方法。通过构建循环链表和递归算法,深入分析并优化了不同规模下的求解效率与策略选择。 数据结构实验约瑟夫环问题实验报告 本实验报告旨在解决约瑟夫环问题,并提供了详细的实验内容。 一、实验目的及要求 实验目的:设有编号为 1,2,...,n 的 n(n>0)个人围成一个圈,每个人持有一个密码 m。从第一个人开始报数,当报到m时停止报数;此时该人出圈,并由其下一位重新开始计数直到再次遇到m为止。如此循环直至所有人全部出圈。给定任意n和m后求解这 n 个人的出圈顺序。 实验要求: (1)建立数据模型,确定存储结构; (2)对任意n个人,密码为 m,实现约瑟夫环问题; (3)输出结果可以依次显示也可以用数组形式保存。 二、实验步骤 (1)定义约瑟夫环的存储结构。 由于此问题是循环性质的问题,考虑使用循环链表。为了简化操作,在不带头结点的情况下建立一个循环单向链表,并由头指针 first 指示。将每个节点的数据类型定义如下: ```c++ struct Node{ int data; // 编号 Node *next; }; ``` (2)创建约瑟夫环。 通过初始化,构建不含头结点的循环单向链表,并由指针first指示。 (3)设计算法实现人员出圈。 伪代码如下: 1. 初始化工作指针 pre 和 p 以及计数器 count; 2. 循环直到p等于pre - 如果count等于m,则执行以下操作: 输出结点 p 的编号,删除结点 p,并令p指向下一个节点。重置计数器。 - 否则,继续: 工作指针 pre 和 p 移动到下一个位置;增加计数器 count; 3. 当链表中只剩一个节点时输出该节点的值并将其从链表中删除。 三、实验内容代码 ```c++ #include using namespace std; struct Node{ int Data; struct Node *next; }; class JosephRing{ public: JosephRing(int n); // 初始化n个结点的循环单向链表 ~JosephRing(); void Joseph(int m); // 输出出圈顺序 private: Node *rear; // 指针类型为Node类指针,用于指向最后一个节点 }; // 构造函数,创建一个包含n个节点的循环单向链表。 JosephRing::JosephRing(int n){ Node *s = nullptr; rear = new Node; rear->Data = 1; // 初始化第一个结点的数据为1 rear->next = rear; // 将该结点指向自己,形成环形结构的开始 for (int i=2 ;i<=n;i++){ s = new Node; s->Data = i; s->next = rear->next; rear->next = s; rear=s; } } // 函数Joseph用于实现约瑟夫环问题,输出出圈顺序。 void JosephRing::Joseph(int m){ Node *pre=rear,*p= rear -> next; int count=1; // 初始化工作指针和计数器 while(p->next != p){ if(count < m) { // 如果count小于m,则继续前进 pre = p; p=p->next; count++; } else { cout<Data< next = p -> next ; delete q; p=pre->next; count=1; } } cout<Data<
  • -.doc
    优质
    《约瑟夫问题-数据结构》文档深入探讨了经典的约瑟夫斯淘汰问题及其在数据结构中的应用,介绍了环形链表等数据结构在此类问题解决过程中的重要作用。 数据结构期末试验报告 学院: 专业: 学号: 班级: 姓名: 2010.12.12 Joseph约瑟夫环上机实验报告 实验名称:joseph约瑟夫环 题目要求的约瑟夫环操作如下: 编号为1, 2,……, n的人按照顺时针方向围坐一圈。每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m;从第一个开始顺时针方向自1开始顺序报数,当报到m时停止。此时报m的人出列,并将他的密码作为新的m值;从他在顺时针方向的下一个人重新从1开始继续依次报数,直到所有人全部出列为止。设计一个程序来求解出列顺序。 实验要求: 1)利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 2)建立输入处理函数以接收m的初值、n以及每个人的密码,并构建单循环链表。 3)创建一个输出函数,展示正确的输出序列。 4)测试数据:初始m为20,n=7;七个人的密码分别为3, 1, 7, 2, 4, 7, 4。首先设定m = 6,则正确输出是什么? 实验过程: 基本算法及分析: 本程序主要通过构建单循环链表来模拟约瑟夫环,并在各个节点中输入相关数据,例如t(注:原文指代具体变量或参数)。
  • 设计
    优质
    本简介探讨了在数据结构课程中如何通过约瑟夫环问题的设计与实现,增强学生对循环链表及队列的理解,并激发其算法思维和问题解决能力。 约瑟夫环问题设计是数据结构课程的一部分,使用C/C++编程实现,并提供了源代码和文档。
  • 位论文——.doc
    优质
    本文为一篇关于数据结构中经典问题“约瑟夫环”的学位论文。通过深入探讨该问题的数学模型与算法实现,旨在提出更高效的解决方案,并进行了广泛的实验验证和比较分析。 学位论文——数据结构约瑟夫环.doc
  • 设计
    优质
    《约瑟夫问题的数据结构课程设计》是一门结合理论与实践的教学项目,专注于通过解决经典的约瑟夫斯置换问题来深入理解数据结构的应用和算法实现。学生将学习如何使用不同的数据结构优化解决方案,并在此过程中提升编程技巧与逻辑思维能力。 此文档包含约瑟夫环的课程设计代码实现及相关说明。
  • 解法.cpp
    优质
    本代码实现了解决约瑟夫环问题的一种算法,通过构建循环链表模拟游戏中人员的位置与淘汰过程,适用于深入理解数据结构和递归思维。 约瑟夫(Josephus)环问题描述如下:假设n个人围成一圈,并从第s个人开始顺时针方向报数,每次报到数字d的人退出圆圈,然后下一个剩余的参与者继续进行同样的过程直到所有人都离开圈子为止。对于任意给定的n、s和d值,请找出按顺序离开圆圈中所有人员的具体序列。 请使用链表结构来实现Josephus问题的求解流程。
  • 关于报告1.doc
    优质
    本实验报告详细探讨了经典的约瑟夫环问题,并通过多种数据结构(如链表、队列)实现了该问题的不同求解方法,分析其效率与适用场景。 约瑟夫环问题描述如下:假设编号为1, 2, 3,..., n的n个人(其中n>0)按照顺时针方向围成一圈,m是一个任意正整数。从第一个人开始,按顺时针顺序依次报数,当有人报出数字m后停止,并且此人退出游戏;然后由他后面的人继续从1重新开始计数,直至再次有人喊到m为止并同样出局。如此循环往复直到所有参与者都已离场。请编写程序来模拟这一过程:对于给定的任意正整数m和n,输出最终每个人的出列顺序编号序列。实验要求使用顺序表实现该算法。
  • 关于报告
    优质
    本实验报告详细探讨了数据结构中的经典问题——约瑟夫斯问题,通过多种算法实现和性能分析,旨在加深对循环链表及队列应用的理解。 数据结构约瑟夫问题实验报告获得了满分通过。