成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言出隊和入隊函數(shù) c語言循環(huán)隊列入隊出隊代碼

求一個用c語言編寫的入隊、出隊,。。謝謝

#include "stdafx.h"

創(chuàng)新互聯(lián)公司是一家集成都網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

#include "stdio.h"

#include "malloc.h"

#define MAX 8

static int Queen[8][8];

static int a=1;

typedef struct

{

int *elem;

int top;

}ColStack;//棧:存放每一行放置皇后的列號

void InitQueen()

{

int i,j;

for(i = 0; i 8; i++)

{

for(j = 0; j 8; j++)

{

Queen[i][j] = 0;

}

}

}

int InitStack(ColStack CS)//初始化棧

{

CS.elem = (int *)malloc(MAX*sizeof(int));

if(!CS.elem) return 0;

CS.top = -1;

return 1;

}

int Push(ColStack CS, int e)//進(jìn)棧

{

if(CS.top = 8) return 0;

CS.top++;

CS.elem[CS.top] = e;

return 1;

}

int Pop(ColStack CS, int e)//退棧

{

if(CS.top == -1)return 0;

e = CS.elem[CS.top];

CS.top--;

return 1;

}

int Back(ColStack CS,int e)//回溯

{

Pop(CS,e);

Queen[CS.top+1][e] = 0;

if(e == 7 CS.top == -1)

{

return 0;

}

if(e == 7 CS.top != -1)

{

Back(CS,e);

}

return 1;

}

int OK(int i, int j)//檢查(i,j)上能否放棋子

{

int k, m;

for(k = i; k = 0; k--)//檢查同列

{

if(Queen[k][j] == 1) return 0;

}

k = i; m = j;

while(k = 0 m = 0)

{

if(Queen[k][m] == 1) return 0;

k--; m--;

}

k = i; m = j;

while(k = 0 m 8)

{

if(Queen[k][m] == 1) return 0;

k--;m++;

}

return 1;

}

//進(jìn)入本函數(shù)時,在8*8棋盤前i-1行已放置了互不攻

// 擊的i-1個棋子?,F(xiàn)從第 i 行起繼續(xù)為后續(xù)棋子選擇

// 滿足約束條件的位置。當(dāng)求得(i8)的一個合法布局

// 時,輸出之。

int queen(int i, ColStack CS, int start)

{

int j, k,e;

if(i=8)

{

printf("第%d種情況:\n",a);

for(j = 0; j 8; j++)

{

for(k = 0; k 8; k++)

{

if(Queen[j][k] == 0)

{

printf("# ");

}

else

{

printf("@ ");

}

}

printf("\n");

}

a++;

}else

{

for(j = start+1; j 8; j++)

{

if(OK(i,j) == 1)

{

Queen[i][j]=1;

Push(CS,j);

queen(i+1,CS,-1);

return 1;

}

}

}

if(j == 8)

{

if(Back(CS,e) == 1)

{

queen(CS.top+1,CS,e);

}

if(Back(CS,e) == 0)

{

return 1;

}

}

}

int main()

{

InitQueen();

ColStack cs;

InitStack(cs);

queen(0,cs,-1);

return 0;

}

這是一個八皇后問題,是個典型的出隊列、入隊列問題

求用C語言做隊列的出對和入隊

//定義隊列結(jié)構(gòu)體

typedef struct Qnode

{

int data;

struct Qnode *next;

} Queue , *QueuePtr;

typedef struct

{

QueuePtr front;

QueuePtr rear;

} linkQnode;

//創(chuàng)建一個隊列

initQueue (linkQnode *q)

{

q - front = q - rear = (QueuePtr) malloc (sizeof (Queue));

if (!q - front) exit (0);

q - front - next = NULL;

}

//入隊列

EnterQueue (linkQnode *q , int item)

{

QueuePtr p;

p = (QueuePtr) malloc (sizeof (Queue));

if (!p) exit (0);

p - data = item;

p - next = NULL;

q - rear - next = p;

q - rear = p;

}

//出隊列

DelQueue (linkQnode *q , int *item)

{

QueuePtr p;

if (q - front = q - rear) return;

p = q - front - next;

*item = p - data;

q - front - next = p - next;

if (q - rear == p)

q - rear = q - front;

free (p);

}

C語言,用數(shù)組實現(xiàn)隊列的入隊,出隊函數(shù)編程

這樣的話應(yīng)該符合你的要求:

#includestdio.h

void?add(int?queue[],int?x);

int?Top(int?queue[]);

void?del(int?queue[]);

int?end=0;

int?main()

{

int?n;

scanf("%d",n);//將要入隊列n個元素

int?queue[1000];

for(int?i=1;i=n;i++)//輸入n個元素

{

add(queue,i);//將i加入隊列

}

//驗證加入隊列的元素,將隊列中的元素按照輸入的順序輸出:

for(?i=1;i=n;i++)

{

printf("%d?",Top(queue));//Top函數(shù)返回隊頭元素

del(queue);//刪除隊頭元素

}

//驗證輸出已經(jīng)出隊列后的隊列(數(shù)組)元素:

printf("\n");

for(i=1;i=n;i++)

printf("%d?",queue[i]);

printf("\n");

return?0;

}

void?add(int?queue[],int?x)

{

queue[++end]=x;

}

int?Top(int?queue[])

{

return?queue[1];//注意,這里的函數(shù)始終return?queue[1];這里是和將普通數(shù)組中的元素輸出最大的不同之處。!?。。。?!

}

void?del(int?queue[])

{

for(int?i=2;i=end;i++)

{

queue[i-1]=queue[i];

}

queue=0;//將刪除后的地方置0

end--;

}

數(shù)據(jù)結(jié)構(gòu)c語言版,出隊入隊及依次輸出一個隊列的操作。

黑色的提示框是程序運(yùn)行結(jié)果窗口,不是錯誤的窗口

代碼錯誤說明如下:

while(Q-front!=Q-rear)//在本循環(huán)體之中,Q-front?Q-rear的值始終沒有變化

//故而在這里肯定是一個死循環(huán)

{

printf("%d,??",?Q-front-next-data);

Q-front-next=Q-front-next-next;

}

//改正后的代碼如下:

QNode*?s?=?Q-front;

while(s!=Q-rear)

{

printf("%d,??",?s-data);

s=s-next;

}

另外,所有的函數(shù)當(dāng)中不應(yīng)該有exit

exit是一個系統(tǒng)函數(shù),表示結(jié)束程序,而不是退出函數(shù)

如果需要退出函數(shù)可以使用return來達(dá)到該目的

當(dāng)前題目:c語言出隊和入隊函數(shù) c語言循環(huán)隊列入隊出隊代碼
文章來源:http://jinyejixie.com/article14/dopcige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站改版企業(yè)網(wǎng)站制作、定制開發(fā)域名注冊、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
中西区| 贵阳市| 玉田县| 和林格尔县| 桂东县| 同德县| 东乌珠穆沁旗| 玉门市| 平安县| 中阳县| 仙游县| 潞西市| 九寨沟县| 武宣县| 江都市| 长治县| 陆河县| 青浦区| 万源市| 三门县| 甘肃省| 尉氏县| 西宁市| 临漳县| 胶州市| 剑川县| 武清区| 建德市| 太湖县| 宾川县| 玉田县| 彰化市| 武强县| 崇信县| 中卫市| 长顺县| 清远市| 广水市| 确山县| 密山市| 莫力|