国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

約瑟夫環(huán)問題(Josephus) —— 循環(huán)單鏈表

2019-11-11 07:30:17
字體:
供稿:網(wǎng)友

問題描述

  N個人圍成一圈,從第一個開始報數(shù),第k個將被殺掉,直到最后剩下一個。

解決思路

  用循環(huán)單鏈表解決。

代碼示例

/* function:約瑟夫環(huán)問題 - 循環(huán)單鏈表 created by : xilong date: 2017.2.5*/#include "iostream"using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef double Elemtype;typedef int Status;typedef struct Node{ Elemtype data; struct Node* next;}Node;typedef struct Node* CLinkList;/* 功能:初始化一個空的單向循環(huán)鏈表頭,并創(chuàng)建鏈表*/CLinkList CLinkList_CreateJosephus(){ CLinkList head; head = (CLinkList)malloc(sizeof(CLinkList)); CLinkList p, s; p = head; int flag = 1; Elemtype c; while (flag) { cin >> c; if (c != -99999) { s = (CLinkList)malloc(sizeof(CLinkList)); s->data = c; p->next = s; p = s; s->next = head->next; } else { flag = 0; p->next = head->next; } } return head->next;}Status Josephus(CLinkList *head,int k){ CLinkList p, temp; int i,j; p = *head; if (p == NULL) { cout << "空鏈表" << endl; return ERROR; } while (p != p->next) { for (i = 1; i <= k-2; i++) { p = p->next; } cout << p->next->data << " "; temp = p->next; p->next = temp->next; //free(temp); p = p->next; } cout << p->data << endl; return OK;}void main(){ CLinkList head; int k; cout << "開始輸入(這里是尾插法建表,輸入-99999結(jié)束建表)..........." << endl; head = CLinkList_CreateJosephus(); cout << "輸入步長:"; cin >> k; cout << "輸出的順序為:" << endl; Josephus(&head, k); system("pause");}

程序截圖

這里寫圖片描述


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐清市| 横峰县| 广河县| 唐河县| 靖江市| 东阳市| 磴口县| 微山县| 潜山县| 宜良县| 呼伦贝尔市| 大港区| 台东县| 东台市| 个旧市| 长丰县| 荥经县| 萨迦县| 武功县| 龙游县| 滦平县| 札达县| 三江| 石嘴山市| 东源县| 盐山县| 镇巴县| 石阡县| 武强县| 虎林市| 墨竹工卡县| 蒲江县| 新丰县| 贵德县| 高雄市| 云霄县| 红桥区| 石阡县| 淳安县| 泌阳县| 曲阜市|