A. C語言數組 隊列
intpoint[2][10]={0};
voidaddline(x,y)
{
inti;
for(i=0;i<10;i++)
if(point[1][i]==0&&point[2][i]==0)
break;
if(i<10)
{
point[1][i]=x;
point[2][i]=y;
}
else
{
for(i=0;i<9;i++)
{
point[1][i]=point[1][i+1];
point[2][i]=point[2][i+1];
}
point[1][9]=x;
point[2][9]=y;
}
}
存進去的坐標不能是0,0
B. C語言用數組實現循環隊列的入隊出隊
//定義一個int型數組que,長度為N(常量切大於2).
intque[N];
intrear=0,front=0;//隊尾隊頭
判斷隊列已滿:
if((front+1)%N==rear%N)//成立則隊列已滿
判斷隊列為空
if((rear==front))//成立則隊列空
入隊(一般在入隊前判斷隊列是否已滿)
//將val入隊
que[front++]=val;
front%=N;
出隊(一般在出隊前判斷隊列是否為空)
rear=(rear+1)%N;
下一個要出隊的元素(一般先判斷是否為空)
que[rear];
C. 數據結構(使用C語言)隊列
對順序循環隊列,常規的設計方法是使用隊尾指針和隊頭指針,隊尾指針用於指出當前胡隊尾位置下標,隊頭指針用於指示當前隊頭位置下標。現要求:
(1)設計一個使用隊頭指針和計數器胡順序循環循環隊列抽象數據類型,其中包括:初始化,入隊列,出隊列,取隊頭元素肯判斷隊列是否非空;
#include"stdio.h"
#include"malloc.h"
#include"stdlib.h"
#include"conio.h"
#defineMAX80
typedefstruct
{
intdata[MAX];
intfront,rear;
intnum;
}SeQue;
SeQue*Init_SeQue()
{
SeQue*s;
s=newSeQue;
s->front=s->rear=MAX-1;
s->num=0;
returns;
}
intEmpty_SeQue(SeQue*s)
{
if(s->num==0)
return1;
else
return0;
}
intIn_SeQue(SeQue*s,intx)
{
if(s->num==MAX)
return0;
else
{
s->rear=(s->rear+1)%MAX;
s->data[s->rear]=x;
s->num++;
return1;
}
}
intOut_SeQue(SeQue*s,int*x)
{
if(Empty_SeQue(s))
return0;
else
{
s->front=(s->front+1)%MAX;
*x=s->data[s->front];
s->num--;
return1;
}
}
voidPrint_SeQue(SeQue*s)
{
inti,n;
i=(s->front+1)%MAX;
n=s->num;
while(n>0)
{printf("%d",s->data[i]);
i=(i+1)%MAX;
n--;
}
}
voidmain()
{
SeQue*s;
intk,flag,x;
s=Init_SeQue();
do{
printf("\");
printf("\t\t\t循環順序隊列");
printf("\t\t\t***********************");
printf("\t\t\t**1-入隊**");
printf("\t\t\t**2-出隊**");
printf("\t\t\t**3-判隊空**");
printf("\t\t\t**4-隊列顯示**");
printf("\t\t\t**0-返回**");
printf("\t\t\t***********************");
printf("\t\t\t請輸入菜單項(0-4):");
scanf("%d",&k);
switch(k)
{
case1:
printf("請輸入入隊元素:");
scanf("%d",&x);
flag=In_SeQue(s,x);
if(flag==0)
printf("隊滿不能入隊!按任意鍵返回..");
else
printf("元素已入隊!按任意鍵返回..");
getch();
system("cls");
break;
case2:
flag=Out_SeQue(s,&x);
if(flag==0)
printf("隊列空出隊失敗!按任意鍵返回..");
else
printf("隊列頭元素已出隊~!按任意鍵返回..");
getch();
system("cls");
break;
case3:
flag=Empty_SeQue(s);
if(flag==1)
printf("該隊列為空!按任意鍵返回..");
else
printf("該隊列不為空!按任意鍵返回..");
getch();
system("cls");
break;
case4:
printf("該隊列元素為:");
Print_SeQue(s);
printf("按任意鍵返回..");
getch();
system("cls");
break;
}
}while(k!=0);
}