C语言栈的用法(创建、入栈、出栈、遍历) |
您所在的位置:网站首页 › 如何定义一个变量c语言 › C语言栈的用法(创建、入栈、出栈、遍历) |
C语言栈的用法(创建、入栈、出栈、遍历)
本篇博客主要简单介绍如何使用C语言构建栈,元素入栈,元素出栈以及遍历所有的栈内元素 1、栈的定义首先对栈进行定义,构建一个简单的结构体,采用typedef struct 的类型,然后包含栈顶、栈底和栈内元素三个部分 typedef struct{ char data[100]; int top; int bottom; }stack;上述代码表示构建一个名字是stack类型的结构体,包含三个部分。 2、栈的创建然后是栈的构建,来为栈开辟内存空间,存储我们进行入站出栈的元素。只需在栈操作开始前进行一次栈的构建即可,无需重复。 stack *StackCreate(){ stack *p=(stack*)malloc(sizeof(stack));//分配新空间 if(p==NULL)//分配失败 return 0; p->bottom=p->top=0;//分配成功 return p; }上述代码段为向p内分配内存,成功则返回p 3、入栈栈构建完毕后就开始进行栈的操作了,首先就是如何将字符、数字等我们想要的内容送入栈中,就需要进行入栈操作。 void StackInput(stack *p,char str){ p->data[p->top]=str;//存入栈中 p->top++;//栈顶指针加1 }将字符str存入栈中,位置为top,只存在data中,然后栈top++ 4、出栈当我们想要栈顶的元素时,就用到了出栈的操作 char StackOutput(stack *p,char str){ if(p->top!=p->bottom){//栈非空 str=p->data[p->top-1];//栈顶内容输出 p->top--;//栈顶减1 return str; } }因为top位置为栈顶值的下一个,因此将data中top-1的值输出,栈顶top–,返回的值为栈顶元素str 5、栈的遍历但我们想要输出栈内存储的所有元素,那么就需要使用到遍历 void StackPrint(stack *p){ while(p->top!=p->bottom){ printf("%c",p->data[p->top-1]); p->top--; } }从栈顶元素开始,直到top==bottom为止,输出其中data存储的元素值 6、例子下面我们简单看一下压入一个字符和压入字符串的情况 int main(){ char str; stack *p;//定义栈名 p=StackCreate();//创建栈 StackInput(p,'b');//将字符压入栈中 str=StackOutput(p,str);//取出栈顶内容 printf("%c\n",str);//输出栈顶内容 }将字符b压入栈中,然后从栈中输出 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |