栈操作,构造,插入,删除,转换

来源:互联网 发布:桌面软件编程语言 编辑:程序博客网 时间:2024/05/29 18:26

栈操作,构造,插入,删除,转换
// stacklist.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <cstdio>#include <malloc.h>using namespace std;#define STACK_INIT_SIZE 100#define STACKINCREAMENT 10typedef struct{int *base;int *top;int sacksize;}SqStack;//--构造一个栈--SqStack initStack(SqStack &S){S.base = (int*)malloc(STACK_INIT_SIZE * sizeof(int));//申请存储if (!S.base)exit(OVERFLOW);//分配存储失败S.top = S.base;//空栈S.sacksize = STACK_INIT_SIZE;return S;}//---插入栈SqStack Push(SqStack &S, int e){if (S.top - S.base >= S.sacksize){S.base = (int *)realloc(S.base, (S.sacksize + STACKINCREAMENT)*sizeof(int));if (!S.base)exit(OVERFLOW);S.top = S.base + S.sacksize;S.sacksize += STACKINCREAMENT;}*S.top++ = e;return S;}//--输出栈顶元素int Pop(SqStack &S, int &e){if (S.top == S.base)return 0;e = *--S.top;return e;}//--输入任意十进制数,输出八进制数void conver(int a, int b){SqStack S,l;l = initStack(S);while (cin >> a){Push(l, a % 8);a = a / 8;}while (S.top != S.base){Pop(l, b);cout << b << "\n" << endl;} }int _tmain(int argc, _TCHAR* argv[]){return 0;}


1 0
原创粉丝点击