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

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

c語(yǔ)言取隊(duì)頭元素的函數(shù) 隊(duì)列獲取隊(duì)頭元素

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

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

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、武夷山網(wǎng)站維護(hù)、網(wǎ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--;

}

c語(yǔ)言編寫,用數(shù)組表示棧,不用指針,編寫gettop函數(shù)(取棧頂元素)

int top;//要求棧頂為全局變量

int gettop(int a[])

{

int e;

if(top == -1)//top=-1視為棧空.視具體情況分析,也可以top==0

{

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

}

e=a[top];//取值

top--; //棧頂自減

return e;

}

-是指針變量對(duì)結(jié)構(gòu)成員的調(diào)用等同 點(diǎn)符號(hào).

數(shù)據(jù)結(jié)構(gòu)(使用C語(yǔ)言)隊(duì)列

對(duì)順序循環(huán)隊(duì)列,常規(guī)的設(shè)計(jì)方法是使用隊(duì)尾指針和隊(duì)頭指針,隊(duì)尾指針用于指出當(dāng)前胡隊(duì)尾位置下標(biāo),隊(duì)頭指針用于指示當(dāng)前隊(duì)頭位置下標(biāo)?,F(xiàn)要求:

(1)設(shè)計(jì)一個(gè)使用隊(duì)頭指針和計(jì)數(shù)器胡順序循環(huán)循環(huán)隊(duì)列抽象數(shù)據(jù)類型,其中包括:初始化,入隊(duì)列,出隊(duì)列,取隊(duì)頭元素肯判斷隊(duì)列是否非空;

#include?"stdio.h"

#include?"malloc.h"

#include?"stdlib.h"

#include?"conio.h"

#define?MAX?80

typedef?struct

{

int?data[MAX];

int?front,rear;

int?num;

}SeQue;

SeQue?*Init_SeQue()

{

SeQue?*s;

s=new?SeQue;

s-front=s-rear=MAX-1;

s-num=0;

return?s;

}

int?Empty_SeQue(SeQue?*s)

{

if(s-num==0)

return?1;

else

return?0;

}

int?In_SeQue(SeQue?*s,int?x)

{

if(s-num==MAX)

return?0;

else

{?

s-rear=(s-rear+1)%MAX;

s-data[s-rear]=x;

s-num++;

return?1;

}?

}?

int?Out_SeQue(SeQue?*s,int?*x)

{

if(Empty_SeQue(s))

return?0;

else

{

s-front=(s-front+1)%MAX;

*x=s-data[s-front];

s-num--;

return?1;

}

}

void?Print_SeQue(SeQue?*s)

{

int?i,n;

i=(s-front+1)%MAX;

n=s-num;

while(n0)

{?printf("%d?",s-data[i]);

i=(i+1)%MAX;

n--;

}

}

void?main()

{

SeQue?*s;

int?k,flag,x;

s=Init_SeQue();

do{

printf("\\\");

printf("\\t\\t\\t循環(huán)順序隊(duì)列\(zhòng)");

printf("\\t\\t\\t***********************\");

printf("\\t\\t\\t**1-入隊(duì)**\");

printf("\\t\\t\\t**2-出隊(duì)**\");

printf("\\t\\t\\t**3-判?隊(duì)?空**\");

printf("\\t\\t\\t**4-隊(duì)列顯示**\");

printf("\\t\\t\\t**0-返回**\");

printf("\\t\\t\\t***********************\");

printf("\\t\\t\\t?請(qǐng)輸入菜單項(xiàng)(0-4):");

scanf("%d",k);

switch(k)

{

case?1:

printf("\請(qǐng)輸入入隊(duì)元素:");

scanf("%d",x);

flag=In_SeQue(s,x);

if(flag==0)

printf("\隊(duì)滿不能入隊(duì)!按任意鍵返回..");

else

printf("\元素已入隊(duì)!按任意鍵返回..");

getch();

system("cls");

break;

case?2:

flag=Out_SeQue(s,x);

if(flag==0)

printf("\隊(duì)列空出隊(duì)失敗!按任意鍵返回..");

else

printf("\隊(duì)列頭元素已出隊(duì)~!按任意鍵返回..");

getch();

system("cls");

break;

case?3:

flag=Empty_SeQue(s);

if(flag==1)

printf("\該隊(duì)列為空!按任意鍵返回..");

else

printf("\該隊(duì)列不為空!按任意鍵返回..");

getch();

system("cls");

break;

case?4:

printf("\該隊(duì)列元素為:");

Print_SeQue(s);

printf("\按任意鍵返回..");

getch();

system("cls");

break;

}

}while(k!=0);

}

數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)隊(duì)列基本操作的實(shí)現(xiàn)

/***************/

/* 鏈?zhǔn)疥?duì)列 */

/***************/

#include "stdlib.h"

#include "stdio.h"

/* 定義鏈?zhǔn)疥?duì)列類型 */

typedef int ElemType;

typedef struct QNode

{ ElemType data;

struct QNode *next;

} QNode, *QueuePtr;

typedef struct

{ QueuePtr front;

QueuePtr rear;

} LinkQueue;

/* 1、初始化鏈?zhǔn)疥?duì)列 */

void InitQueue(LinkQueue *Q)

{ Q-front=Q-rear=(QueuePtr)malloc(sizeof(QNode));

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

Q-front-next=NULL; }

/* 2、銷毀鏈?zhǔn)疥?duì)列 */

void DestroyQueue(LinkQueue *Q)

{ while (Q-front)

{ Q-rear=Q-front-next;

free(Q-front);

Q-front=Q-rear; }

}

/* 3、清空鏈?zhǔn)疥?duì)列 */

void ClearQueue(LinkQueue *Q)

{ QueuePtr p;

p=Q-front-next;

while (p)

{ Q-front-next=p-next;

free(p); }

Q-rear=Q-front;

}

/* 4、判斷空隊(duì)列 */

int QueueEmpty(LinkQueue Q)

{ if (Q.front==Q.rear)

return 1;

else

return 0; }

/* 5、求鏈?zhǔn)疥?duì)列長(zhǎng)度 */

int QueueLength(LinkQueue Q)

{ QueuePtr p; int n=0;

p=Q.front;

while (p!=Q.rear)

{ n++; p=p-next; }

return n;

}

/* 6、取隊(duì)頭元素 */

ElemType GetHead(LinkQueue Q)

{ if (Q.front!=Q.rear)

return Q.front-next-data;

}

/* 7、入隊(duì)列 */

void EnQueue(LinkQueue *Q, ElemType e)

{ QueuePtr p;

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

if (!p) exit(0);

p-data=e; p-next=NULL;

Q-rear-next=p;

Q-rear=p; }

/* 8、出隊(duì)列 */

void DeQueue(LinkQueue *Q, ElemType *e)

{ QueuePtr p;

if (Q-front!=Q-rear)

{ p=Q-front-next;

*e=p-data;

Q-front-next=p-next;

if (Q-rear==p) Q-rear=Q-front;

free(p); }

}

/* 9、遍歷鏈?zhǔn)疥?duì)列并輸出元素 */

void QueueTraverse(LinkQueue Q)

{ QueuePtr p;

printf("\nQueue: ");

p=Q.front-next;

while (p)

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

p=p-next;}

}

/* 約瑟夫問(wèn)題 */

void Joseffer(int n)

{ LinkQueue Q; int i; ElemType x;

InitQueue(Q);

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

EnQueue(Q,i);

while (!QueueEmpty(Q))

{ for(i=1; i=3; i++)

{ DeQueue(Q,x);

if (i!=3)

EnQueue(Q,x);

else

printf("%5d",x);

}

}

}

/* 主函數(shù) */

main()

{ LinkQueue Q; int i; ElemType x;

InitQueue(Q);

for(i=2; i=5; i++)

EnQueue(Q,i);

printf("len:%d\n",QueueLength(Q));

while (!QueueEmpty(Q))

{ DeQueue(Q,x);

printf("%d\t",x); }

//QueueTraverse(Q);

//Joseffer(6);

}

自己去調(diào)試吧,這個(gè)是C語(yǔ)言版的鏈?zhǔn)疥?duì)列,如果看不懂或者調(diào)不出來(lái)就去看書吧。否則你這門是白學(xué)了。

注:這里是鏈?zhǔn)疥?duì)列

/***************/

/* 循環(huán)隊(duì)列 */

/***************/

#include "stdlib.h"

#include "stdio.h"

#define N 100

/* 定義循環(huán)隊(duì)列類型 */

typedef int ElemType;

typedef struct

{ ElemType *base;

int front;

int rear;

} SqQueue;

/* 1、初始化循環(huán)隊(duì)列 */

void InitQueue(SqQueue *Q)

{ Q-base=(ElemType*)malloc(N*sizeof(ElemType));

Q-front=Q-rear=0; }

/* 2、銷毀循環(huán)隊(duì)列 */

void DestroyQueue(SqQueue *Q)

{ free(Q-base); }

/* 3、清空循環(huán)隊(duì)列 */

void ClearQueue(SqQueue *Q)

{ Q-front=Q-rear=0; }

/* 4、判斷空隊(duì)列 */

int QueueEmpty(SqQueue Q)

{ if (Q.front==Q.rear)

return 1;

else

return 0; }

/* 5、求循環(huán)隊(duì)列長(zhǎng)度 */

int QueueLength(SqQueue Q)

{ return (Q.rear+N-Q.front)%N; }

/* 6、取隊(duì)頭元素 */

void GetHead(SqQueue Q, ElemType *e)

{ if (Q.front!=Q.rear)

*e=Q.base[Q.front];

}

/* 7、入隊(duì)列 */

int EnQueue(SqQueue *Q, ElemType e)

{ if ((Q-rear+1)%N==Q-front)

return 0;

Q-base[Q-rear]=e;

Q-rear=(Q-rear+1)%N;

return 1; }

/* 8、出隊(duì)列 */

int DeQueue(SqQueue *Q, ElemType *e)

{ if (Q-front==Q-rear)

return 0;

*e=Q-base[Q-front];

Q-front=(Q-front+1)%N;

return 1; }

/* 9、遍歷循環(huán)隊(duì)列并輸出元素 */

void QueueTraverse(SqQueue Q)

{ int i;

printf("\nQueue: ");

if (Q.rearQ.front) Q.rear=Q.rear+N;

for(i=Q.front; iQ.rear; i++)

printf("%d\t",Q.base[i%N]); }

/* 主函數(shù) */

main()

{ SqQueue Q; int i; ElemType x;

InitQueue(Q);

for(i=2; i=5; i++)

EnQueue(Q,i);

printf("len:%d\n",QueueLength(Q));

while (!QueueEmpty(Q))

{ DeQueue(Q,x);

printf("%d\t",x); }

QueueTraverse(Q);

}

在給你個(gè)循環(huán)隊(duì)列吧


標(biāo)題名稱:c語(yǔ)言取隊(duì)頭元素的函數(shù) 隊(duì)列獲取隊(duì)頭元素
本文網(wǎng)址:http://weahome.cn/article/dohgdsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部