动态链表的课后作业。直接上代码:
// My accepted code of Q2
#include
#include
#include
using namespace std;
typedef struct _LinkNode //开链表
{
int value;
struct _LinkNode* next;
}LinkNode, *LinkNodePtr;
LinkNodePtr createCycle(int total)
{
int index = 1;
LinkNodePtr head = NULL, curr = NULL, prev = NULL;//链表初始化
head = (LinkNodePtr)malloc(sizeof(LinkNode));
head->value = index;
prev = head;
while (--total > 0)//判断满链表?
{
curr = (LinkNodePtr)malloc(sizeof(LinkNode));
curr->value = ++index;
prev->next = curr;
prev = curr;
}
curr->next = head;
return head;
}
void run(int total, int tag)
{
LinkNodePtr node = createCycle(total);
LinkNodePtr prev = NULL;
int start = 1;
int index = start;
while (node && node->next)
{
if (index == tag)
{
printf("n%d", node->value);
if (tag == start)
{
prev = node->next;
node->next = NULL;
node = prev;
}
else
{
prev->next = node->next;
node->next = NULL;
node = prev->next;
}
index = start;
}
else
{
prev = node;
node = node->next;
index++;
}
}
}
int main(int argc, char* argv[])
{
int peo;
while (1)
{
cout > peo;
if (peo == 1)
break;
else if (peo
原文标题:一个简单的约瑟夫环代码|落絮飞雁的个人网站授权协议:创作共用 署名-非商业性使用 2.5 中国大陆除注明外,本站文章均为原创;转载时请保留上述链接。
好羡慕 还能在学校过神仙般的日子