久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數據結構經典題目及c語言代碼總結

時間:2019-05-11 23:51:20下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《數據結構經典題目及c語言代碼總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數據結構經典題目及c語言代碼總結》。

第一篇:數據結構經典題目及c語言代碼總結

《數據結構》課程設計題目(程序實現采用C語言)

題目1:猴子選王(學時:3)

一堆猴子都有編號,編號是1,2,3...m,這群猴子(m個)按照1-m的順序圍坐一圈,從第1開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子,則該猴子為大王。

要求:m及n要求從鍵盤輸入,存儲方式采用向量及鏈表兩種方式實現該問題求解。

//鏈表

#include #include // 鏈表節點

typedef struct _RingNode

{

int pos;

struct _RingNode *next;}RingNode, *RingNodePtr;

// 創建約瑟夫環,pHead:鏈表頭指針,count:鏈表元素個數 void CreateRing(RingNodePtr pHead, int count){

RingNodePtr pCurr = NULL, pPrev = NULL;

int i = 1;

pPrev = pHead;

while(--count > 0)

{

pCurr =(RingNodePtr)malloc(sizeof(RingNode));

i++;

pCurr->pos = i;

pPrev->next = pCurr;

pPrev = pCurr;

}

pCurr->next = pHead;// 構成環狀鏈表 } void KickFromRing(RingNodePtr pHead, int n){

RingNodePtr pCurr, pPrev;

int i = 1;

// 計數

pCurr = pPrev = pHead;

while(pCurr!= NULL)

{

if(i == n)

{

// 踢出環

printf(“n%d”, pCurr->pos);

// 顯示出圈循序

pPrev->next = pCurr->next;

free(pCurr);

pCurr = pPrev->next;

i = 1;

}

pPrev = pCurr;

pCurr = pCurr->next;

if(pPrev == pCurr)

{

// 最后一個

printf(“nKing is %d”, pCurr->pos);

// 顯示出圈循序

free(pCurr);

break;

}

i++;

} }

int main(){

int n = 0, m = 0;

RingNodePtr pHead = NULL;

printf(“M(person count)= ”);

scanf(“%d”, &m);

printf(“N(out number)= ”);

scanf(“%d”, &n);

if(m <= 0 || n <= 0)

{

printf(“Input Errorn”);

return 0;

}

// 建立鏈表

pHead =(RingNodePtr)malloc(sizeof(RingNode));

pHead->pos = 1;

pHead->next = NULL;

CreateRing(pHead, m);// 開始出圈

printf(“nKick Order: ”);

KickFromRing(pHead, n);

printf(“n”);

system(“pause”);

return 0;}

//數組做:

#include #include #include

void SelectKing(int MonkeyNum, int CallNum);

void main(){

int MonkeyNum;

int CallNum;

/* 輸入猴子的個數 */

printf(“Monkey Num = ”);

scanf(“%d”, &MonkeyNum);

/* 輸入M的值 */

printf(“Call Num = ”);

scanf(“%d”, &CallNum);

SelectKing(MonkeyNum, CallNum);

}

void SelectKing(int MonkeyNum, int CallNum){

int *Monkeys;// 申請一個數組,表示所有的猴子;

int counter = 0;//計數,當計數為猴子個數時表示選到最后一個猴子了;

int position = 0;// 位置,數組的下標,輪流遍歷數組進行報數;

int token = 0;// 令牌,將報數時數到M的猴子砍掉;

// 申請猴子個數大小的數組,把桌子擺上。

Monkeys =(int *)malloc(sizeof(int)* MonkeyNum);

if(NULL == Monkeys)

{

printf(“So many monkeys, system error.n”);

return;

}

// 將數組的所有內容初始化為0,被砍掉的猴子設置為1

memset(Monkeys, 0, sizeof(int)*MonkeyNum);

// 循環,直到選中大王

while(counter!= MonkeyNum)

{

// 如果這個位置的猴子之前沒有砍掉,那么報數有效

if(Monkeys[position] == 0)

{

token++;// 成功報數一個,令牌+1,繼續報數直到等于M

// 如果報數到M,那么將這個猴子砍去

if(token == CallNum)

{

Monkeys[position] = 1;// 設置為1,表示砍去

counter++;// 計數增加

token = 0;// 設置為0,下次重新報數

// 如果是最后一個猴子,把它的位置打印,這個就是大王了

if(counter == MonkeyNum)

{

printf(“The king is the %d monkey.n”, position+1);

}

}

}

// 下一個猴子報數

position =(position + 1)%MonkeyNum;

}

// 釋放內存,開頭為所有猴子創建的桌子

free(Monkeys);

return;}

題目2 :字符逆轉(學時:3)

從鍵盤讀入一個字符串,把它存入一個鏈表(每個結點存儲1個字符),并按相反的次序將字符串輸出到顯示屏。

#include #include

struct node {

struct node *prev;

char c;

struct node *next;};struct node *input(struct node *top);int main(void){ struct node T,*top=&T,*bottom=&T,*p=NULL;T.prev=NULL;T.next=NULL;T.c='

主站蜘蛛池模板: 亚洲熟妇色自偷自拍另类| 国产成人无码va在线观看| 一二三四视频社区在线| 国产一区二区三区免费高清在线播放| 国产精品国产自线拍免费不卡| 开心久久婷婷综合中文字幕| 精品熟女少妇av免费观看| 人人妻人人澡人人爽不卡视频| 欧美肥妇多毛bbw| 亚洲人成电影网站色| 亚洲女同一区二区| 中文无码天天av天天爽| 99久久久无码国产精品秋霞网| 亚洲精品国产suv| 人妻少妇乱子伦无码专区| 久久不见久久见免费视频7| 婷婷六月在线精品免费视频观看| 富婆如狼似虎找黑人老外| 一区二区三区国产| 国产精品成人免费视频一区| 亚洲中文字幕无码一区| a亚洲va欧美va国产综合| 国产真实迷奷在线播放| 狠狠色狠狠色综合日日五| 男女做爰猛烈啪啪吃奶动| 日韩精品久久久久久久电影蜜臀| 国产av偷闻女邻居内裤被发现| 精品无码久久久久久久久水蜜桃| 亚洲精品久久久打桩机| 亚洲午夜成人精品无码色欲| 色综合天天视频在线观看| 国产明星精品无码av换脸| 色噜噜狠狠一区二区三区果冻| 丰满人妻跪趴高撅肥臀| 久久精品免费国产大片| 国产精品成人午夜久久| 亚洲欧美另类精品二区| 欧美日韩一区二区免费视频| 日本久久久www成人免费毛片丨| 国产人妻鲁鲁一区二区| 下面一进一出好爽视频|