真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語(yǔ)言入隊(duì)出隊(duì)功能函數(shù),隊(duì)列入隊(duì)函數(shù)

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

#include?stdio.h

成都創(chuàng)新互聯(lián)公司專注于汪清企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。汪清網(wǎng)站建設(shè)公司,為汪清等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

#include?stdlib.h

#define?ElemType?int?

#define?Status?int

#define?OK?1

#define?ERROR?0

typedef?struct?QNode{

ElemType?data;

struct?QNode?*next;

}QNode;

typedef?struct?LinkQueue{

QNode?*front;

QNode?*rear;

}LinkQueue;

Status?InitQueue(LinkQueue?*q)?{?//建立隊(duì)列?

q-front=q-rear=(QNode?*)malloc(sizeof(QNode));

if(!q-front)

return?ERROR;

q-front-next=NULL;

return?OK;

}

Status?EnQueue(LinkQueue?*q,ElemType?e)?{?//入隊(duì)?

QNode?*p=(QNode?*)malloc(sizeof(QNode));

if(!p)

return?ERROR;

p-data=e;

p-next=NULL;

q-rear-next=p;?//入隊(duì)操作,從隊(duì)尾(rear)進(jìn)入

q-rear=p;

return?OK;

}

Status?DeQueue(LinkQueue?*q,ElemType?*e)?{?//出隊(duì)?

QNode?*p=(QNode?*)malloc(sizeof(QNode));

if(!p)

return?ERROR;

p=q-front-next;?//q指向的是front指針的下一個(gè)位置,亦即隊(duì)首元素?

*e=p-data;

q-front-next=p-next;?//出隊(duì)操作后,front++

if(q-rear==p)?//判斷是否全部出隊(duì)

q-rear=q-front;?//如果全部出隊(duì),則將隊(duì)列置為空

return?OK;

}

Status?PrintfQueue(LinkQueue?*Q)?{

QNode?*p;

for(p=Q-front-next;p!=NULL;p=p-next)

printf("%d\t",p-data);

}

int?main(void)

{

int?i,n;

ElemType?e,de;

LinkQueue?*q=(LinkQueue?*)malloc(sizeof(QNode));

if(!q)

return?ERROR;

InitQueue(q);

printf("以下開(kāi)始構(gòu)造初始隊(duì)列:\n\n");

printf("請(qǐng)輸入元素個(gè)數(shù):");

scanf("%d",n);

printf("\n");

for(i=0;in;++i)?{

printf("請(qǐng)輸入第%d個(gè)元素:",i+1);

scanf("%d",e);

EnQueue(q,e);

}

printf("\n");

printf?("初始隊(duì)列構(gòu)造完畢!\n\n");

printf?("初始隊(duì)列:\n");

PrintfQueue(q);

printf("\n\n");

printf?("======================================================\n\n");

printf("以下開(kāi)始執(zhí)行入隊(duì)操作:\n\n");

printf("請(qǐng)輸入需入隊(duì)的元素個(gè)數(shù):");

scanf("%d",n);

printf("\n");

for(i=0;in;++i)?{

printf("請(qǐng)輸入第%d個(gè)元素:",i+1);

scanf("%d",e);

EnQueue(q,e);

}

printf("\n");

printf?("入隊(duì)%d個(gè)元素操作完畢!\n\n",n);

printf("此時(shí)隊(duì)列:\n");

PrintfQueue(q);

printf("\n\n");

printf?("======================================================\n\n");

printf("以下開(kāi)始執(zhí)行出隊(duì)操作:\n\n");

printf("請(qǐng)輸入需出隊(duì)的元素個(gè)數(shù):");

scanf("%d",n);

printf("\n");

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

DeQueue(q,de);

printf("\n");

printf?("出隊(duì)%d個(gè)元素操作完畢!\n\n",n);

printf("此時(shí)隊(duì)列:\n");

PrintfQueue(q);

printf("\n\n");

printf?("======================================================\n\n");

free(q);

return?0;

}

執(zhí)行結(jié)果

C語(yǔ)言用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)出隊(duì)

//定義一個(gè)int型數(shù)組que,長(zhǎng)度為N(常量切大于2).

int?que[N];

int?rear=0,front=0;?//隊(duì)尾?隊(duì)頭

判斷隊(duì)列已滿:

if((front+1)%N==rear%N)??//成立則隊(duì)列已滿

判斷隊(duì)列為空

if((rear==front))?//成立則隊(duì)列空

入隊(duì)(一般在入隊(duì)前判斷隊(duì)列是否已滿)

//將val入隊(duì)

que[front++]=val;

front%=N;

出隊(duì)(一般在出隊(duì)前判斷隊(duì)列是否為空)

rear=(rear+1)%N;

下一個(gè)要出隊(duì)的元素(一般先判斷是否為空)

que[rear];

c語(yǔ)言入棧出棧,出隊(duì)入隊(duì)問(wèn)題

int?pop(seqstack?*s,char?*x)?{

if(s-top?==?0)?{?//?初始化時(shí),s-top?=?-1,此處以s-top?==?0?判斷棧為空,有矛盾

printf("??誠(chéng)n");

return?-1;

}

else?{

*x?=?s-c[s-top];

s-top--;

}

return?1;

}

通常,top指的位置是待壓入的空結(jié)點(diǎn),所以top == 0時(shí),棧為空,top ==?MAXSIZE時(shí),棧滿,故應(yīng)該修改初始化函數(shù),建議蟹蓋如下:

seqstack?*Initstack(void)?{

seqstack?*s;

s?=?(seqstack?*)malloc(sizeof(seqstack));

s-top?=?0;

return?s;

}

用c語(yǔ)言編寫12345的入隊(duì),然后出隊(duì)

#include "stdafx.h"

#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;//棧:存放每一行放置皇后的列號(hào)

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ù)時(shí),在8*8棋盤前i-1行已放置了互不攻

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

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

// 時(shí),輸出之。

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;

}

這是一個(gè)八皇后問(wèn)題,是個(gè)典型的出隊(duì)列、入隊(duì)列問(wèn)題

在循環(huán)隊(duì)列中怎樣實(shí)現(xiàn)入隊(duì)和出隊(duì)操作? 數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言

入隊(duì)操作

功能:將元素 x 插入到Q的隊(duì)尾。

算法:Status EnQueue(SqQueue Q, QElemType e) {

if ((Q.rear+1) % MaxQsize == Q.front) return ERROR; // 隊(duì)列滿

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1) % MaxQsize;

return OK;

}

出隊(duì)操作

功能:刪除Q的隊(duì)頭元素,并返回其值。

算法: Status DeQueue(SqQueue Q, QElemType e) {

if (Q.front == Q. rear) return ERROR; // 隊(duì)列空

e = Q.base[Q.front];

Q.front=(Q.front+1) % MaxQsize;

return OK;

}

C語(yǔ)言,用數(shù)組實(shí)現(xiàn)隊(duì)列的入隊(duì),出隊(duì)函數(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);//將要入隊(duì)列n個(gè)元素

int?queue[1000];

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

{

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

}

//驗(yàn)證加入隊(duì)列的元素,將隊(duì)列中的元素按照輸入的順序輸出:

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

{

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

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

}

//驗(yàn)證輸出已經(jīng)出隊(duì)列后的隊(duì)列(數(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ù)組中的元素輸出最大的不同之處。?。。。。。?/p>

}

void?del(int?queue[])

{

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

{

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

}

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

end--;

}


本文標(biāo)題:C語(yǔ)言入隊(duì)出隊(duì)功能函數(shù),隊(duì)列入隊(duì)函數(shù)
本文鏈接:http://weahome.cn/article/phjhss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部