c语言循环链表的问题
今天,老师说了一道题,大意是,有一群小朋友10个人,但是老师只有一个苹果,只能给一个小朋友,于是老师就决定让小朋友们做成一圈,从第一个小朋友开始,每隔一个小朋友就没有机会得到苹果,最后剩下的一个人可以得到,现在老师想知道这个幸运儿会是谁.
然后老师要求这个问题用循环链表解决,自己也顺带复习一下,直接上代码
struct data
{
int num;
struct data *next;
};
int main()
{
struct data *p,*head,*pnew;
int n=;
p=head=(struct data*)malloc(sizeof(struct data)); //创建头指针,存如第一个数据
p->num=;
while(n<=) //循环创建接下来的链表
{
pnew=(struct data *)malloc(sizeof(struct data));
pnew->num=n;
p->next=pnew;
p=pnew;
n++;
}
p->next=head; //让最后的尾指针指向头指针,形成循环链表
p=head; //p指向头指针,准备遍历链表
while()
{
p->next=p->next->next; //根据条件,两个人中间的一个没有机会获得糖果
p=p->next; //到下个人的下个人
if(p->next==p) //循环链表,当只剩下一个结点的时候,它会指向它本身
break;
}
printf("%d\n",p->num); //输出这个结点的编号,看看是哪个幸运儿
}
直接看代码吧,加油!不管别人怎么看,只要坚持才是最好的自己.
c语言循环链表的问题的更多相关文章
- C语言通用双向循环链表操作函数集
说明 相比Linux内核链表宿主结构可有多个链表结构的优点,本函数集侧重封装性和易用性,而灵活性和效率有所降低. 可基于该函数集方便地构造栈或队列集. 本函数集暂未考虑并发保护. 一 ...
- 双向循环链表(C语言描述)(四)
下面以一个电子英汉词典程序(以下简称电子词典)为例,应用双向循环链表.分离数据结构,可以使逻辑代码独立于数据结构操作代码,程序结构更清晰,代码更简洁:电子词典的增.删.查.改操作分别对应于链表的插入. ...
- 一种神奇的双向循环链表C语言实现
最近在看ucore操作系统的实验指导.里面提要一个双向循环链表的数据结构,挺有意思的. 其实这个数据结构本身并不复杂.在普通链表的基础上加一个前向指针,我们就得到了双向链表,再把头尾节点连起来就是双向 ...
- 1.Go语言copy函数、sort排序、双向链表、list操作和双向循环链表
1.1.copy函数 通过copy函数可以把一个切片内容复制到另一个切片中 (1)把长切片拷贝到短切片中 package main import "fmt" func main() ...
- C语言编程丨循环链表实现约瑟夫环!真可谓无所不能的C!
循环链表 把链表的两头连接,使其成为了一个环状链表,通常称为循环链表. 和它名字的表意一样,只需要将表中最后一个结点的指针指向头结点,链表就能成环儿,下图所示. 需要注意的是,虽然循环链表成环 ...
- 【C语言教程】“双向循环链表”学习总结和C语言代码实现!
双向循环链表 定义 双向循环链表和它名字的表意一样,就是把双向链表的两头连接,使其成为了一个环状链表.只需要将表中最后一个节点的next指针指向头节点,头节点的prior指针指向尾节点,链表就能成环儿 ...
- c语言编程之双向循环链表
双向循环链表就是形成两个环,注意每个环的首尾相连基本就可以了. 程序中采用尾插法进行添加节点. #include<stdio.h> #include<stdlib.h> #de ...
- 双向循环链表(C语言描述)(一)
双向循环链表是链表的一种,它的每个节点也包含数据域和指针域.为了方便程序维护,可以单独为数据域定义一种数据类型,这里以整型为例: typedef int LinkedListData; 双向循环链表( ...
- 单向循环链表C语言实现
我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是 ...
随机推荐
- QT 设置菜单图标
目录 一.添加主窗口菜单 二.添加菜单图标 三.添加资源文件 四.使用资源文件 五.使用代码来添加菜单和图标 正文 一.添加主窗口菜单 1.新建Qt Gui应用,项目名称为myMainWind ...
- CSS之float样式
一.简介 Css样式的float浮动属性,用于设置标签对象(如:<div>标签盒子.<span>标签.<a>标签.<em>标签等html标签)的浮动布局 ...
- Ansible8:Playbook循环
目录 1.with_items 2.with_nested嵌套循环 3.with_dict 4.with_fileglob文件匹配遍历 5.with_lines 6.with_subelement遍历 ...
- 豆瓣电影api
1.获取正在热映的电影: 接口:https://api.douban.com/v2/movie/in_theaters 访问参数: start : 数据的开始项 count:单页条数 city:城 ...
- java web实现计划定时任务
java web实现定时计划任务 1.定义一个类继承TimerTask,在run方法中写上需要执行的逻辑 package com.mytask; import java.util.TimerTask; ...
- Django 2.0.1 官方文档翻译: 文档目录 (Page 1)
Django documentation contents 翻译完成后会做标记. 文档按照官方提供的内容一页一页的进行翻译,有些内容涉及到其他节的内容,会慢慢补上.所有的翻译内容按自己的理解来写,尽量 ...
- [转载]如何做到 jQuery-free?
http://www.ruanyifeng.com/blog/2013/05/jquery-free.html jQuery是现在最流行的JavaScript工具库. 据统计,目前全世界57.3%的网 ...
- 当今最流行的Web项目管理工具精选
代码管理 以前各种开源项目的代码都是通过博客和个人网页来发布的.这种分享方式并不是最容易的一种,也不便于他人对代码做出贡献.下面是几个管理项目代码的工具,不管对于个人开发者还是团队开发者来说,它们都是 ...
- 【leetcode 简单】 第九十九题 字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包 ...
- 【leetcode 简单】 第九十四题 左叶子之和
计算给定二叉树的所有左叶子之和. 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 # Definition for a binary ...