/*josephus 問題 n個人從1到n編號,圍坐成乙個圓圈。從1號開始傳遞乙個熱土豆。經過m次傳遞後拿著熱土豆的人被清除離座,圍坐的圓圈縮緊,由坐在被清除的人後面的人拿起熱土豆繼續進行遊戲,最後剩下的人取勝*/
//標頭檔案
#ifndef _josephus_h
typedef struct node *ptrtonode;
typedef ptrtonode position;
typedef ptrtonode list;
position creatringlist(int n);
void printlist(position phead);
int winner(position phead,int n,int m);
#endif
#include
#include "josephus.h"
#include
struct node
head=l;
head->element=1;
head->next=head;
tail=head;
for(i=2;i<=n;i++)
p->element=i;
tail->next=p;
p->next=head;
tail=p;
}return head;
}void printlist(position phead)
printf("%d",p->element);
//返回獲勝的序號
int winner(position phead,int n,int m)
q->next=p->next;
//printf("%d",p->element);
free(p);
p=q->next;
}return p->element;
}main()
資料結構與演算法分析
資料結構與演算法分析可以稱得上是程式設計師必須修煉的內功心法。資料的儲存結構 資料元素在計算機中的儲存方式 資料的操作集合 對一種資料型別的資料所有操作,例如對資料的增刪改查等等!演算法分析主要分析 下面是一些常用資料結構 一 線性表 1.陣列實現 2.鍊錶 二 棧與佇列 三 樹與二叉樹 1.樹2....
資料結構與演算法分析
資料結構 大量資料的組織方法 演算法分析 演算法執行時間的估算。涉及到計算效率。設想,如果能把時間限制從16年減至不到1秒,不很神奇嗎?在很多問題中,乙個重要的觀念是 寫出乙個可以工作的程式並不夠。如果這個程式在巨大的資料集上執行,執行時間就成了重要的 問題。演算法,是為求解乙個問題需要遵循的 被清...
資料結構與演算法分析 note
1 explicit建構函式是用來防止隱式轉換的。請看下面的 class test1 普通建構函式 private int num class test2 explicit 顯式 建構函式 private int num int main test1的建構函式帶乙個int型的引數,23行會隱式轉換成...