package person;
/**
*
* 列表中有100个人,从第1个开始数数,当数到7或者7的倍数时,
* 则从列表中将该对象移除,数到末尾后又开始从第一个循环开始数
* 直到删除至最后一个人
* @author
*
*/
public class Person {
public Person() {
}
public Person(int pId) {
this.pId = pId;
}
private int pId;
private Person next;
public int getPId() {
return pId;
}
public void setPId(int id) {
pId = id;
}
public Person getNext() {
return next;
}
public void setNext(Person next) {
this.next = next;
}
public static void main(String[] args) {
Person p1 = new Person(1);
Person temp = p1;
for (int i = 1; i < 100; i++) {
temp.setNext(new Person(i + 1));
temp = temp.getNext();
}
temp.setNext(p1);
temp = p1;
Person forDelete = p1.getNext();
int i = 2;
while (temp != forDelete) {
if (i % 7 == 0) {
temp.setNext(forDelete.getNext());
System.out.println(forDelete.getPId() + " has bean deleted!");
} else {
temp = temp.getNext();
}
forDelete = forDelete.getNext();
i++;
}
System.out.println(forDelete.getPId() + " has bean deleted!");
}
}
分享到:
相关推荐
本文将深入探讨如何利用单向链表和双向循环链表来构建这样一个系统。我们将讨论标题中的"航班订票系统"、"单向链表"和"双向循环链表"这些核心概念。 首先,我们来看"单向链表"。单向链表是一种线性数据结构,每个...
在数据结构的世界里,循环链表作为一种特殊类型的链表,因其结构的环状特性而被广泛应用于需要循环访问节点数据的场景中。然而,在一些特定情况下,我们可能需要将循环链表中的元素顺序颠倒过来,这就涉及到了循环...
Linux操作系统中通用双向循环链表的实现分析 Linux操作系统是一个支持多用户、多任务、多线程和多CPU的开源操作系统,其内核功能强大、性能稳定并具有丰富的应用软件支持。Linux内核源代码主要由C语言和少量的汇编...
单循环链表是一种常见的数据结构,它在计算机科学中被广泛用于存储和处理有序或无序的数据序列。链表与数组不同,不依赖于物理位置的连续性,而是通过节点间的引用连接彼此。本篇文章将深入探讨单循环链表的概念、...
循环链表是一种特殊的链表结构,其特点在于链表的最后一个节点的指针域不再指向空,而是指向前一个节点,这样整个链表形成一个闭合的环形结构。在循环链表中,由于没有明显的尾端,因此在进行算法操作时需要特别注意...
循环链表是一种特殊的链式数据结构,其最后一个元素的指针指向了链表的第一个元素,形成一个闭合的环状结构。与线性链表不同,循环链表没有明显的起点和终点,使得在某些场景下遍历和操作更加方便。在C++编程中,不...
循环链表是一种特殊的链式数据结构,它与普通链表的主要区别在于最后一个元素的指针不是指向NULL,而是指向链表的第一个元素,从而形成一个闭合的环状结构。这种设计使得在遍历链表时可以更加高效,因为它可以从任何...
### 数据结构课程设计报告:基于双向循环链表的通讯录设计 #### 概要设计 在沈阳航空航天大学的计算机学院,计算机科学与技术专业的学生冯读庆在其数据结构课程设计中,选择了一个既具挑战性又实用的项目——基于...
双向循环链表是一种高级的数据结构,常用于需要前后移动指针的场景,如实现LRU缓存淘汰策略、编辑器的撤销重做功能等。本项目以C++语言实现了带头结点的双向循环链表,这将有助于我们深入理解这一概念。 首先,双向...
在IT领域,循环链表是一种常见且重要的数据结构,它在程序设计中有着广泛的应用。本文将深入探讨如何使用C语言实现一个基于循环链表的电话本程序。 首先,我们来理解循环链表的基本概念。循环链表与普通链表的主要...
在IT领域,数据结构是计算机科学的基础,循环链表作为一种重要的数据结构,广泛应用于各种算法设计和程序实现中。本文将深入探讨用C++实现的循环链表,包括其概念、特点、操作以及如何在实际编程中应用。 循环链表...
在本课程设计中,学生被要求使用C语言来实现一个基于双向循环链表的通讯录系统。这个系统应具备添加、插入、删除、查询和统计联系人信息的基本功能,并且要具备良好的用户界面和错误处理机制,以确保系统的稳定性和...
这是数据结构的课堂上老师要求我们完成的一个程序 程序实现了关于循环链表的建立与显示
在本实验中,我们利用双向循环链表来实现长整数的存储和四则运算,特别是加法和减法。这种数据结构的选择主要是因为它能够方便地处理长整数的存储和运算过程中的进位和借位操作。 首先,双向循环链表的每个节点仅...
循环链表作为一种重要的数据结构,在计算机科学领域尤其是算法设计与数据管理中扮演着关键角色。相较于普通链表,循环链表在末尾节点指向头节点,形成一个闭环,这一特性使其在某些操作上更为便捷,如遍历整个链表、...
### C语言循环链表的简单应用 #### 一、引言 在计算机科学中,链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数据元素和指向链表中下一个节点的指针。循环链表是链表的一种特殊形式,其中最后一个...
这份名为"图+查找+排序+循环链表+循环链表+数组+广义表+二叉树与树的转换+哈夫曼树.pptx"的文档涵盖了多个关键知识点,下面将对这些主题进行详细解释。 1. **数组**:数组是最基本的数据结构,它允许存储具有相同...
《双向循环链表解决约瑟夫实验报告》 约瑟夫环问题,也称为约瑟夫问题或约瑟夫死亡循环,是一个著名的理论问题。它源于古罗马的一个传说,涉及一组囚犯围成一圈,按照一定的规则淘汰,直到只剩一人存活。在计算机...
双循环链表是一种数据结构,它在单链表的基础上增加了一个前向指针,使得每个节点不仅知道下一个节点,还知道上一个节点。这在处理需要逆向遍历或者需要快速访问相邻节点的问题时非常有用。下面我们将深入探讨双循环...