Please help to make a code of the josephus problem in C using the circular linked list.

Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

Please prove that you've made an honest attempt to do it yourself.

Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

I have made this code but it seems like there is alot of change to be made to make it accurate and right.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

struct node{
	char info[25];
	struct node *NEXT;
};
struct node *HEAD;
struct node *TAIL;
char name[25];

void myInit()
{
	HEAD=(struct node *) malloc(sizeof(struct node));
	TAIL=(struct node *) malloc(sizeof(struct node));
	HEAD->NEXT=TAIL;
	TAIL->NEXT=HEAD;
}

void myInsert()
{
	struct node *TEMP;
	TEMP=(struct node*)malloc(sizeof(struct node));
	strcpy(TEMP->info,name);
	TEMP->NEXT=HEAD->NEXT;
	HEAD->NEXT=TEMP;
}

void myRemove()
{
	struct node *TEMP;
	TEMP=(struct node*) malloc(sizeof(struct node));
	TEMP=HEAD->NEXT;
	HEAD->NEXT=HEAD->NEXT->NEXT;
	strcpy(name,TEMP->info);
}

void main()
{
	clrscr();
	int numSol, counter;
	myInit();
	printf("Enter the number of soldier: ");
	scanf("%d",&numSol);
	for(int i=1;i<=numSol; i++)
	{
		printf("Pls. Type a Name: ");
		scanf("%s",&name);
		myInsert();
	}
	printf("Value for Counter: ");
	scanf("%d",&counter);

	for(int j=1;j<=numSol;j++)
	{
	for(int k=1;k<=counter;k++)
	{
	myRemove();
	if(k==counter){
	puts(name);
	getch();}
	}
	}
}

Thanks for your message. I totally appreciate it. Hope you could help me. Thanks!!

Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

1. You are making memory leaks all over the place. When you operate with dynamic memory allocation you have the responsibility to free every part of memory that you don't use.

2. Instead of void main() always write int main() 3. myRemove() isn't working. Why are you creating a new memory space for temp? And then when you have created new mem space, TEMP->info is empty!

Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

sci@phy, did you really understand the problem?the answers you have written is vague and may be equal to knowledge of a child in programming. If you can not answer properly, do not answer it just to show that you are an intellectual.

commented: constructive criticism the name of the game +0
commented: This thread is from 2008. -1
Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

What is the Josephus problem?

Re: Make a program in C of the Josephus problem using Circular Linked list 80 80

sci@phy, did you really understand the problem?the answers you have written is vague and may be equal to knowledge of a child in programming. If you can not answer properly, do not answer it just to show that you are an intellectual.

Is there a reason you resurrected a 4-year old thread just to scold someone that hasn't been here sin Oct 13th, 2010?

Let sleeping threads die...

What is the Josephus problem?

Clickity Click

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.