8-12接口测试和书写格式

版权声明:如果不小心侵权了请及时说 会改的。祝大家看的开心同时也可以学到一点点东西 https://blog.csdn.net/zuoside__lord/article/details/81604490
/* Sun Aug 12 01:22:58 CST 2018 */
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#define MAXSIZE 4

typedef struct
{
	int rear;
	int front;
	int *base;
} queue_t, *queue_ptr;

int init(queue_ptr q);
int enqueue(queue_ptr q,int e);
int dequeue(queue_ptr q,int*e);
int isempty(queue_ptr q);
int getlength(queue_ptr q);

int main(void)
{
	int val;
	queue_t Q;
	assert(init(&Q) == 1);
	assert(getlength(&Q) == 0);

	assert(enqueue(&Q,1) == 1);
	assert(enqueue(&Q,2) == 1);
	assert(enqueue(&Q,3) == 1);
	assert(enqueue(&Q,4) == 0);

	assert(getlength(&Q) == 3);

	assert(dequeue(&Q,&val) == 1 && val == 1);
	assert(dequeue(&Q,&val) == 1 && val == 2);
	assert(dequeue(&Q,&val) == 1 && val == 3);
	assert(dequeue(&Q,&val) == 0);
	assert(getlength(&Q) == 0);

	assert(enqueue(&Q,5) == 1);
	assert(dequeue(&Q,&val) == 1 && val == 5);
	assert(dequeue(&Q,&val) == 0);

	printf("All assertion test passed.\n");

	return 0;
}

int init(queue_ptr q)
{
	q->base = (int*)malloc(sizeof(queue_t) * MAXSIZE);
	if(NULL == q->base) return 0;

	q->front = q->rear = 0;

	return 1;
}

/*
 * 入队列
 * 当前队列没有满【判断队满(rear+1)%MAXSIZE==front】就继续入
 */
int enqueue(queue_ptr q, int e)
{
	if((q->rear+1)%MAXSIZE == q->front) 
		return 0 ;

	q->base[q->rear] = e;
	q->rear = (q->rear+1)%MAXSIZE;

	return 1;
}

/*
 * 出队列 
 * 当前这个队列不为空
 */
int dequeue(queue_ptr q, int *e)
{
	if(q->front == q->rear) return 0;	

	*e = q->base[q->front];
	q->front = (q->front+1) % MAXSIZE;

	return 1;	
}

int getlength(queue_ptr q)
{
	int length = 0;

	length = (q->rear-q->front + MAXSIZE) % MAXSIZE;
	/* printf("length:%d\n",length); */

	return length;
}

0.他使用了大量断言来测试每个函数

1.由typedef定义的类型符号,结尾加_t,指针加_p或_ptr.

好的。

猜你喜欢

转载自blog.csdn.net/zuoside__lord/article/details/81604490