思路:首先構建雙鏈表,把54張牌串聯起來!然後迴圈隨機抽牌。第一次從54張牌中抽取一張,第二次從剩餘的53張牌中抽取一張,以此內推,直到剩餘的牌為0
#include #include #include #include #include //54張牌,s表示10,x表示小王,d表示大王
char pai=;
//儲存洗牌後的結果
char res[54];
//鍊錶節點結構
typedef struct puke
puke;
//雙鏈表
typedef struct dlink
dlink;
//初始化雙鏈表
void init(dlink *link)
p->next=null;
}//洗牌
void shuff(dlink *link)
else if(p==link->head&&p->next!=null)
else if(p->next==null)
else
//剩餘牌數量減1
current--; }}
int main()
else
if((i+1)%17==0)
}putchar('\n');
return 0;
}
結果:
可以每17張排個序,這樣更像鬥地主發牌
雙鏈表演算法
package main import fmt type node struct 末尾插入 func insert head node,newnode node tmp tmp.next 正向遍歷 func list head node forelse tmp tmp.next 反向遍歷 func ...
演算法(雙鏈表)
實現乙個雙鏈表,雙鏈表初始為空,支援5種操作 1 在最左側插入乙個數 2 在最右側插入乙個數 3 將第k個插入的數刪除 4 在第k個插入的數左側插入乙個數 5 在第k個插入的數右側插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從左到右輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊...
雙鏈表實現
一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二 實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。三 源 includeconst i...