深入了解C语言栈的创建

目录栈的结构定义如下:栈的初始化如下:栈元素的输入接口:完整代码如下:运行结果如下:总结

栈:是限定仅在表尾进行插入和删除操作的线性表!

栈的结构定义如下:

typedef struct Stack{    SLDataType *base;//栈底元素的地址    int top;//栈顶元素的位置} Stack;

栈的初始化如下:

SLDataType initStack(Stack &S){  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));//申请栈元素的存储空间  if(S.base==NULL)        return -1;  S.top=0;  return 1;}

栈元素的输入接口:

SLDataType pushStack(Stack &S,int e)//输入栈的元素{    if(S.top==N)        return 0;    S.base[S.top]=e;    S.top++;    return 1;}

完整代码如下:

#include<stdio.h>#include<stdlib.h>#define N 30typedef int SLDataType;typedef struct Stack{    SLDataType *base;//栈底元素的地址    int top;//栈顶元素的位置} Stack;SLDataType initStack(Stack &S){  S.base=(SLDataType*)malloc(N*sizeof(SLDataType));  if(S.base==NULL)        return -1;  S.top=0;  return 1;}SLDataType pushStack(Stack &S,int e)//输入栈的元素{    if(S.top==N)        return 0;    S.base[S.top]=e;    S.top++;    return 1;}void printStack(Stack &S){    int i;    i=0;    while(i<S.top)    {        printf("%d ",S.base[i]);        i++;    }    printf("\n");}int main(){    Stack S;    int i,n,m;//n是入栈的个数    if(initStack(S)==1)        printf("栈初始化成功\n");    printf("入栈的元素个数为:");    scanf("%d",&n);    i=1;    printf("输入要入栈的元素:");    while(i<=n)    {        scanf("%d",&m);        if(pushStack(S,m)==0)        {            printf("%d入栈失败!\n",m);            break;        }        i++;    }    printf("栈中的元素有:    ");    printStack(S);//打印栈中的元素    return 0;}

运行结果如下:

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注的更多内容!

会得到最大的满足,因为它填补了你的空虚。

深入了解C语言栈的创建

相关文章:

你感兴趣的文章:

标签云: