//
// main.cpp
// 栈的基本运算
//
// Created by 柯木超 on 2018/12/3.
// Copyright © 2018年 柯木超. All rights reserved.
//
#include <iostream>
#define maxsize 10
// 栈:先进后出,只有一个数据区域和头部指针
typedef struct {
int data[maxsize];
int top;
}stask, *seqStask;
// 创建栈
seqStask createStask(){
seqStask stask;
stask = (seqStask)malloc(sizeof(stask));
for (int i=0;i<10;i++){
stask->data[i] = i;
stask->top = i;
}
return stask;
}
// 元素进栈
seqStask insertStask(seqStask stask, int data){
stask->data[stask->top] = data;
stask->top ++;
return stask;
}
// 元素出栈
int deleteStaskData(seqStask stask){
int data = stask->data[stask->top];
stask->top --;
return data;
}
// 取栈顶元素
int getTopStask(seqStask stask){
int data = stask->data[stask->top];
return data;
}
// 输出栈元素
void printStask(seqStask stask){
for (int i=0;i<stask->top;i++){
printf("%d",stask->data[i]);
}
printf("\n");
}
int main(int argc, const char * argv[]) {
seqStask stask = createStask();
printStask(stask);
deleteStaskData(stask);
printStask(stask);
insertStask(stask, 50);
printStask(stask);
int data = getTopStask(stask);
printf("%d",data);
return 0;
}
栈的顺序存储结构与基本运算
猜你喜欢
转载自blog.csdn.net/s12117719679/article/details/84781480
今日推荐
周排行