tui

copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.

File name:

Author:Jerey_Jobs    Version:0.1    Date:

Description:

Funcion List:

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

 

#include <stdio.h>

#include <stdlib.h>

#define max_size 10

enum return_result{

FULL_OK,FULL_NO,EMPTY_OK,EMPTY_NO,PUSH_OK

};

struct quece_data

{

    int quece[max_size];

int top;

int buttom;

};

typedef struct quece_data Quece;

void create_quece(Quece **quece)

{

*quece=(Quece *)malloc(sizeof(struct quece_data));

 

}

void init_quece(Quece **quece)

{

(*quece)->top=-1;

(*quece)->buttom=-1;

}

int is_full(Quece **quece)

{

if((*quece)->buttom==-1)

{

if((*quece)->top==max_size-1)

return FULL_OK;

}

else if((((*quece)->top-(*quece)->buttom)+1)==max_size)

{

return FULL_OK;

}

return FULL_NO;

}

int is_empty(Quece **quece)

{

if((*quece)->top<=(*quece)->buttom)

{

return EMPTY_OK;

}

return EMPTY_NO;

}

int push_quece(Quece **quece,int num)

{

int i;

if(is_full(quece)==FULL_OK)

{

printf("the quece is full!\n");

exit(FULL_OK);

}

if((*quece)->top<max_size-1)

{

((*quece)->top)++;

((*quece)->quece[(*quece)->top])=num;

}

else

{

for(i=(*quece)->buttom;i<=(*quece)->top;i++)

{

(*quece)->quece[i-(*quece)->buttom]=(*quece)->quece[i];

}

(*quece)->top=(*quece)->top-(*quece)->buttom+1;

(*quece)->buttom=0;

((*quece)->top)++;

((*quece)->quece[(*quece)->top])=num;

}

return PUSH_OK;

}

int pop_quece(Quece **quece)

{

if(is_empty(quece)==EMPTY_OK)

{

printf("the quece is empty!");

exit(EMPTY_OK);

}

return ((*quece)->quece[++((*quece)->buttom)]);

}

int main()

{

Quece *quece;

create_quece(&quece);

init_quece(&quece);

int i=0;

for(i;i<10;i++)

{

if(push_quece(&quece,i+1)==PUSH_OK)

{

printf("push num:\t %d\n",i+1);

}

}

for(i=0;i<10;i++)

{

printf("pop num:\t %d\n",pop_quece(&quece));

}

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值