c语言行列坐标是先行后j,C语言学习之行列操作
C語言學(xué)習(xí)之隊(duì)列操作
本文件為隊(duì)列操作的接口:
/*queue.h*/
#ifndef _SEQQUEUE_H_
#define _SEQQUEUE_H_
#define QUEUE_MAX 15
typedef struct
{
int number; //顧客編號(hào)
long time;//進(jìn)入時(shí)間
}DATATYPE_T;
typedef struct
{
DATATYPE_T data[QUEUE_MAX]; //隊(duì)列數(shù)組
int head; //隊(duì)列頭
int tail; //隊(duì)列尾
}SEQQUEUE;
/*隊(duì)列是否為空*/
int queue_empty(SEQQUEUE *queue);
/*隊(duì)列是否滿*/
int queue_full(SEQQUEUE *queue);
/*隊(duì)列初始化*/
SEQQUEUE *queue_init();
/*進(jìn)隊(duì)列*/
int queue_push(SEQQUEUE *queue,DATATYPE_T data);
/*出隊(duì)列*/
DATATYPE_T *queue_pop(SEQQUEUE *queue);
/* 獲取隊(duì)列的第一個(gè)元素*/
DATATYPE_T *get_queue_first_element(SEQQUEUE *queue);
/*獲取隊(duì)列的長度*/
int get_queue_length(SEQQUEUE *queue);
/*釋放隊(duì)列*/
void queue_free(SEQQUEUE *queue);
/*顯示隊(duì)列信息*/
int show_queue_info(SEQQUEUE *queue);
#endif
/*queue.c*/
#include
#include
#include
#include "seqQueue.h"
/*隊(duì)列是否為空*/
int queue_empty(SEQQUEUE *queue)
{
return (queue->head==queue->tail);
}
/*隊(duì)列是否滿*/
int queue_full(SEQQUEUE *queue)
{
return (queue->tail==QUEUE_MAX);
}
/*隊(duì)列初始化*/
SEQQUEUE *queue_init()
{
SEQQUEUE *queue=NULL;
queue = malloc(sizeof(SEQQUEUE));
if(queue == NULL)
{
printf("malloc failed\n");
return NULL;
}
queue->head = 0;
queue->tail = 0;
return queue;
}
/*進(jìn)隊(duì)列*/
int queue_push(SEQQUEUE *queue,DATATYPE_T data)
{
int ret = 0;
ret = queue_full(queue);
if(ret!=0)
{
printf("the queue is full\n");
return -1;
}
queue->tail++;
queue->data[queue->tail] = data;
return 0;
}
/*出隊(duì)列*/
DATATYPE_T *queue_pop(SEQQUEUE *queue)
{
int ret = 0;
ret = queue_empty(queue);
if(ret!=0)
{
printf("the queue is empty\n");
return NULL;
}
queue->head++;
return &(queue->data[queue->head]);
}
/* 獲取隊(duì)列的第一個(gè)元素*/
DATATYPE_T *get_queue_first_element(SEQQUEUE *queue)
{
int ret = 0;
ret = queue_empty(queue);
if(ret!=0)
{
printf("the queue is empty\n");
return NULL;
}
return &(queue->data[queue->head]);
}
/*獲取隊(duì)列的長度*/
int get_queue_length(SEQQUEUE *queue)
{
return ((queue->tail)-(queue->head));
}
/*釋放隊(duì)列*/
void queue_free(SEQQUEUE *queue)
{
if(queue!=NULL)
{
free(queue);
queue = NULL;
}
}
/*顯示隊(duì)列全部信息 */
int show_queue_info(SEQQUEUE *queue)
{
int i = 0;
for(i=queue->head+1;itail+1);i++)
{
printf("num:%d,time:%d\n",queue->data[i].number,queue->data[i].time);
}
return 0;
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的c语言行列坐标是先行后j,C语言学习之行列操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 128陷阱+自动装箱拆箱
- 下一篇: ida 字符串查找_IDA 搜索中文字符