最新消息:爱T-blog 最新域名 blog.itiwin.cn !!! php技术博客 magento博客

Linux c 单向链表

Linux c 单向链表,实现约瑟夫环问题,每3个数被踢出

[c]

#include <stdio.h>
#include <stlib.h>
#define JOSE_NR = 8;
struct node_st
{
/* data */
int data;
struct node_st *next;
};

struct node_st *jose_create(int n)
{
struct node_st *me,*newnode;
me=malloc(sizeof(*me));
int i=1;
if(me == NULL)
return NULL

me->data = i;
me->next=me;
i++;

cur = me;
for (; i <= n; i++)
{
/* code */
newnode=malloc(sizeof(*newnode));
if(newnode == NULL)
return NULL
nownode->data = i;
newnode->next = me;

cur->next= newnode;
cur = newnode;

}
return me;

}

void jose_show(struct node_st *me)
{
struct node_st *list=me;

for (list= me; list->next != me; list = list->next)
{
/* code */
sleep(1);
printf(“%d\n”, list->data);
fflush(NULL);//刷新缓冲区

}

printf(“%d\n”,list->data);

}

void jose_kill(struct node_st **me,int n)
{
struct node_st *cur = *me,*node;
int i =1 ;

while(cur != cur->next){
while(i < n)
{
node = cur;
cur = cur->next;
i++;
}
printf(“%d\n”, cur->data);
node->next= cur->next;
free(cur);

cur= node->next;
i=1;
}
*me = cur;
printf(“\n”);

}
int main()
{
/* code */
//无头单项循环链表(约瑟夫环问题)

struct node_st *list;
int num=8;
int n=3;
list = jose_create(JOSE_NR);
jose_show(list);
jose_kill(&list,n);
jose_show(list);

return 0;
}

[/c]

make 编译后

simple-link

转载请注明:爱T-blog » Linux c 单向链表

与本文相关文章

2条回应:“Linux c 单向链表”

  1. 威客圈子说道:

    博主是做WEB前端开发的嘛?

发表评论

电子邮件地址不会被公开。 必填项已用*标注