wq.cpp

来自「这是我刚刚学习了堆栈的数据结构以后所建立的一个关于堆栈的程序」· C++ 代码 · 共 70 行

CPP
70
字号
#include<stdio.h>
#include<malloc.h>

#define stack_init_size 100
#define increament 10

#define overflow -1
#define ok 1
#define error 0

typedef int Status;

typedef struct 
{
	int *base;
	int *top;
	int stracksize;
}sqstrack;

Status Initstack(sqstrack &S)
{
	S.base=(int*)malloc(stack_init_size*sizeof(int));
	if(!S.base) return overflow;
	S.top=S.base;
	S.stracksize=stack_init_size;
	return ok;
}
Status push(sqstrack &S,int e)
{
	if(S.top-S.base>=S.stracksize)
	{
		S.base=(int*)realloc(S.base,(S.stracksize+increament)*sizeof(int));
		if(!S.base) return overflow;
		S.top=S.base+S.stracksize;
		S.stracksize+=increament;
	}
	*S.top++=e;
	return ok;
}

Status pop(sqstrack &S,int &e)
{
	if(S.base==S.top) return error;
	e=*(--S.top);
	return e;
}

        
Status Createstack(sqstrack &S)
{
	int n,i,a;
	printf("输入你要压入堆栈的数据的个数:");
	scanf("%d",&n);
	printf("输入你要压入的数据:");
    for(i=0;i<n;i++)
	{
		scanf("%d",&a);
		push(S,a);
	}
	return ok;
}

main()
{
	sqstrack S;
	Initstack(S);
}


⌨️ 快捷键说明

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