数据结构-栈基本运算的实现及其应用

#include <stdio.h>

#include <stdlib.h>

#include "SeqStack.h"

 

void SS_Initiate(SqStack &S)

// 顺序栈的初始化,即构造一个空的顺序栈

{

    S.elem = (ElemType*)malloc(sizeof(ElemType)*MAXSIZE);

    S.top=-1;

}

 

void SS_Free(SqStack &S)

// 释放顺序栈

{

    free(S.elem);

}

 

bool SS_IsEmpty(SqStack S)

// 判断顺序栈是否为空

{

    return S.top==-1;   

}

 

bool SS_IsFull(SqStack S)

// 判断顺序栈是否为满

{

    return S.top==MAXSIZE-1;    

}

 

void SS_Print(SqStack S)

//从栈底到栈顶输出所有元素

{

    int i;

    if(SS_IsEmpty(S)) 

    {

        printf("stack data: Empty!\n");

        return;

    }

    printf("stack data (from bottom to top):");

    for(i=0;i<=S.top;i++)

        printf(" %d", S.elem[i]);

    printf("\n");

}

 

void SS_Push(SqStack &S, ElemType e)

// 插入元素e为新的栈顶元素

{

    // 请在这里补充代码,完成本关任务

    /********** Begin *********/

    

 

    /********** End **********/

}

 

void SS_Pop(SqStack &S, ElemType &e)

// 删除S的栈顶元素,用e返回其值

{

    // 请在这里补充代码,完成本关任务

    /********** Begin *********/

    

 

    /********** End **********/

}

 

void SS_Top(SqStack S, ElemType &e)

// 获取栈顶元素赋给e

{

    // 请在这里补充代码,完成本关任务

    /********** Begin *********/

    

    

    /********** End **********/

}

 

是不是这样就行?

void SS_Push(SqStack &S, ElemType e)

// 插入元素e为新的栈顶元素

{
	// 请在这里补充代码,完成本关任务

	/********** Begin *********/
	S.top++;
	S.elem[S.top] = e;
	



	/********** End **********/

}



void SS_Pop(SqStack &S, ElemType &e)

// 删除S的栈顶元素,用e返回其值

{
	// 请在这里补充代码,完成本关任务

	/********** Begin *********/
	if (S.top >= 0)
	{
		e = S.elem[S.top];
		S.top--;
	}




	/********** End **********/

}



void SS_Top(SqStack S, ElemType &e)

// 获取栈顶元素赋给e

{
	// 请在这里补充代码,完成本关任务

	/********** Begin *********/

	if (S.top >= 0)
		e = S.elem[S.top];



	/********** End **********/

}

 

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632