⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack3.c

📁 自己做的常用库和实现的数据结构。public domain.
💻 C
字号:
#include<my.h>#define STACK_INIT_SIZE 100#define STACK_INCREMENT 10#define MAX 10typedef struct data {	int e;} DATA;typedef struct stack {	DATA *top, *base;	size_t stacksize;} STACK;void init_stack(STACK * const p){	p->top = p->base = (DATA *)mem('m', STACK_INIT_SIZE * sizeof(DATA));	p->stacksize = STACK_INIT_SIZE;}void push(STACK *p, int data){	if(p->top - p->base >= p->stacksize) {		p->base = (DATA *)mem('r', p->base, (p->stacksize + STACK_INCREMENT) * sizeof(DATA));		p->top = p->base + p->stacksize;		p->stacksize += STACK_INCREMENT ;	}	p->top->e = data;	p->top++;}int stack_empty(const STACK *p){	return p->top != p->base ? 0 : 1;}void pop(STACK * const p, int *q){	if(! stack_empty(p)) {		p->top--;		*q = p->top->e;	}}void destroy_stack(const STACK const *p){	mem('f', p->base);}int main(){	STACK b, *p = &b;	int i,a[MAX];	init_stack(p);	for(i=0; i<MAX; i++)		push(p, i+1);	for(i=0; i<MAX; i++)		pop(p, &a[i]);	for(i=0; i<MAX; i++)		printf("%d ", a[i]);	destroy_stack(p);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -