约瑟夫问题的循环链表解法 C/C++
/*
title:约瑟夫问题的循环链表解法
author:coolsky600
date:2010 04 22
notice:c语言 面向过程
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int num; //全局变量围圈人数
int out; //出去的初始号码
typedef struct Node //定义座位结构体
{
int num;
struct Node *next;
};
Node *creat() //初始化循环链表
{
extern int num; //声明全局变量
extern int out; //声明全局变量
int i,flag=0;
Node *p1,*p2,*head;
printf("一共几个人围圈?");
scanf("%d",&num);
printf("开始第几个出去?");
scanf("%d",&out);
head=p1=p2=(Node *)malloc(sizeof(Node));
head->num=0; //第一个节点值为 0
for(i=0;i<num-1;i++) //再生成nun-1个节点连入链表
{
p1=(Node *)malloc(sizeof(Node));
p1->num=i+1;
p2->next=p1;
p2=p1;
flag++; //flag用于区别第一个节点
}
p2->next=head;
return head;
}
void show(Node *head) //显示出局的顺序
{
extern int out; //声明全局变量
extern int num; //声明全局变量
Node *p,*p1;
p=head;
int i,j;
for(j=1;j<num;j++) //控制输出的次数为num-1
{
for(i=0;i<out-1;i++) //以当前p指针围基准以num-1为偏移量找到下一个出具的人
{
p=p->next;
}
p1=p->next;
out=p1->num; //将出局号码赋给
相关文档:
—★—培训周期:共950学时 5个月
—★—培训附赠:保证学员人手一机和一套ARM9开发板
—★—培训内容:在项目经理的带领下,通过完成局网的麻将游戏、My ICQ(网络聊天)和发电机在线监控系统,BT下载软件,掌握基于Linux和Windows平台下的C/C++企业级应用的开发技能,掌握大型软件项 ......
拿到这本电子书看了林博士写的前言,讲述的什么是编程老手与编程高手,此时我才知我只能称得上是业余编程爱好者而已,林博士对编程老手与编程高手做了如下的定义:
定义 1:能长期稳定地编写出高质量程序的程序员称为编程老手。
定义 2:能长期稳定地编写出高难度、高质量程序的程序员称为编程高手。 ......
实现一个链表,完成链表的插入,查找,删除
typedef struct _FIFO_M{
void *pdata;
struct _FIFO_M *pNext;
}FIFO_M,* pFIFO_M;
typedef struct _FIFO{
pFIFO_M head;
pFIFO_M tail;
pFIFO_M pos;
int mcount;//节点个数
int max_count;//节点最大个数。
}FIFO,* pFIFO;
......
http://blog.csdn.net/tonyxiaohome/archive/2010/04/27/5536367.aspx
我看了以后我也说几句,算我在IT行业打拼一些经验。
首先这个话题实在是太大了。
C++ 包括C不?
苹果、一些软件 比如Mysql,sqlite 都是模块化为主
基本就是C语言。
首先我不认同 C++包括C。
这个话题 就有问题。
我们改改看 ......