約瑟夫環問題(不帶頭結點單迴圈鍊錶實現和陣列實現)

2021-06-07 03:02:43 字數 1242 閱讀 4076

q:略

a:為了簡化過程,類中只有3個函式即可,構造,增加,約瑟夫環解決函式

ps:做這道題是為了鞏固鍊錶知識,在這過程中,this指標很隱蔽,,

code;

#include

using namespace std;

template

struct linknode

linknode(t item,linknode*ptr=null)

};template

class clist

//  ~clist()

//  void makeempty();

bool insert(int i,t x);

void print();

bool delete(int i,t& x);

void josephs(clista,int n,int m);

};template

bool clist::insert(int i,t x)

else

linknode*newnode=new linknode(x);

newnode->link=current->link;

current->link=newnode;

return true;}}

template

void clist::print()

}template

bool clist::delete(int i,t& x)

first=first->link;

current->link=first;

}else

p->link=current->link;

delete current;

}}              

template

void clist::josephs(clistb,int n,int m)

cout<<"出列的人是"p->link=current->link;

delete current;

current=p->link;}}

int main()

2.陣列實現

code:

#include

using namespace std;

#define max  10

int main()

void josephs(int a,int n,int m)

a[k-1]=temp; 

b--;}}

C 不帶頭結點的單迴圈鍊錶解決約瑟夫環問題

重新把殷人昆的c 資料結構 2版 重新走一遍,發現以前的基礎太差,這個簡單的基礎的東西都搞了好久才搞出來啊 言歸正題 首先建立要力乙個circlist.h標頭檔案 如下 不帶頭結點的單迴圈鍊錶 ifndef circlist h define circlist h ifndef ch h defin...

不帶頭結點的單迴圈鍊錶

建立標頭檔案nlist.h pragma once 不帶頭節點的鍊錶,主要應用在迴圈鍊錶中,其缺點,操作複雜 會出現二級指標 優點 靈活 頭指標指向哪個節點哪個節點就是第乙個節點 不帶頭節點的單鏈迴圈鍊錶,尾節點的next指向第乙個節點 typedef struct nnode nnode,pnli...

約瑟夫環問題(單迴圈鍊錶實現)

大致思路 1.利用尾插法建立乙個迴圈鍊錶 建表成功後刪除頭結點 2.核心演算法 生成乙個work指標,每走到約定的step 1的位置時停止,利用pdel指標標記後繼結點,迴圈釋放pdel,直到work work next停止 include include include using namespa...