精华内容
下载资源
问答
  • 栈的进栈和出栈

    2016-12-10 23:06:32
    栈的顺序存储结构---进栈操作  /*插入元素e为新的栈顶元素*/ StatusPush(SqStack *S, SElemType e) { if(S->top == MAXSIZE -1)  /栈满**/ { return ERROR; }  s->top++;  /*栈顶指针增加一*/...

    栈的顺序存储结构---进栈操作 

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

    StatusPush(SqStack *S, SElemType e)

    {

    if(S->top == MAXSIZE -1)    /栈满**/

    {

    return ERROR;

    }

     s->top++;                                   /*栈顶指针增加一*/ 

     s->data[s->top] = e;             /*将新插入元素赋值给栈顶空间*/

    return OK;

    }

    栈的顺序存储结构---出栈操作

    出栈操作pop,代码如下:

    /*若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK 否则返回ERROR*/

    StatusPop(SqStack *S, SElemType *e)

    {

    if(s->top == -1)

    return ERROR;

    *e = s->data[s->top];          /*将要删除的栈顶元素赋值给e*/

     s->top--;                                    /*栈顶指针减一*return OK;

    }

    展开全文
  • 进栈出栈,栈,栈的简单操作
    #include<stdio.h>
    #include<stdlib.h>


    typedef char int_4;
    int_4 stack[100];
    int top = 0;


    void push(int_4 n)//进栈
    {
    stack[top++] = n;
    }
    int  panduan()
    {
    return (top == 0);
    }
    int_4 out(void) //出栈
    {
    return stack[--top];
    }




    int main(void)
    {
    int_4 str[100] = "hello world!";
    int i = 0;
    while (str[i] != '\0')
    {
    push(str[i]);
    i++;
    }
    while (panduan() != 1)
    {
    printf("%c", out());
    }
    printf("\n");




    system("pause");
    return 0;
    }
    展开全文
  • 这里写自定义目录标题欢迎使用Markdown编辑器新改变功能快捷键合理创建标题,有助于目录生成如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左、...

    [作业]链式栈的进栈和出栈

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // 
    #include "stdio.h"
    #include "malloc.h"
    
    typedef struct LNode {
    	int  data;
    	struct LNode *next;
    }LNode, LStack;
    
    void Lpush(LNode *&s, int e)
    {
    	LNode *p;
    	p = (LNode*)malloc(sizeof(LNode));
    	p->data = e;
    	p->next = s;
    	s = p;
    } //Lpush
    
    LNode* InitLStack() {
    	LNode* s;
    	int n;
    	s = (LNode*)malloc(sizeof(LNode));
    	s->data = 9527;
    	s->next = NULL;
    
    	for (int i = 1; i <10; i++)
    	{
    		Lpush(s, i * 100 + i * 10 + i);
    	}
    	return s;
    } //InitLStack
    
    
    
    int Lpop(LNode *&s) {
    	if (s) {
    		int d = s->data;
    		s = s->next;
    		return d;
    	}
    	else {
    		return 0;
    	}
    } //Lpop
    
    int main() {
    	LNode* S1;
    	S1 = InitLStack();
    	while (S1)
    	{
    		printf("%d\n", Lpop(S1));
    	}
    }
    
    展开全文
  • 初始化一个,只需要将栈顶指针置为-1 这里我们讨论顺序 #include<stdio.h> #define maxsize 100 typedef struct { int data[maxsize]; int top; }sqstack; void initStack(sqstack &st) { st.top=-...

    初始化一个栈,只需要将栈顶指针置为-1

    这里我们讨论顺序栈

    #include<stdio.h>
    #define maxsize 100
    typedef struct
    {
    	int data[maxsize];
    	int top;
    }sqstack;
    void initStack(sqstack &st)
    {
    	st.top=-1;
    }
    

    判断栈空返回1,否则返回0

    int isEmpty(sqstack st)
    {
    	if(st.top==-1)
    		return 1;
    	else
    		return 0;
    	
    }
    

    进栈的时候注意:栈满就不能进栈

    int push(sqstack &st,int x)
    {
    	if(st.top==maxsize-1)
    		return 0;
    	++(st.top);//先移动指针,在进栈
    	st.data[st.top]=x;
    	return 1;
    }
    

    出栈的时候注意:栈空就不能出栈

    int pop(sqstack &st,int &x)
    {
    	if(st.top==-1)
    		return 0;
    	x=st.data[st.top];//先取出元素,在移动指针
    	--(st.top);
    	return 1;
    }
    

    初始化一个顺序栈整体是这样:

    #include<stdio.h>
    #define maxsize 100
    typedef struct
    {
    	int data[maxsize];
    	int top;
    }sqstack;
    void initStack(sqstack &st)
    {
    	st.top=-1;
    }
    int isEmpty(sqstack st)
    {
    	if(st.top==-1)
    		return 1;
    	else
    		return 0;
    	
    }
    int push(sqstack &st,int x)
    {
    	if(st.top==maxsize-1)
    		return 0;
    	++(st.top);//先移动指针,在进栈
    	st.data[st.top]=x;
    	return 1;
    }
    int pop(sqstack &st,int &x)
    {
    	if(st.top==-1)
    		return 0;
    	x=st.data[st.top];//先取出元素,在移动指针
    	--(st.top);
    	return 1;
    }
    

    这是我的复习笔记,希望对大家也有帮助

    展开全文
  • //特别注意顺序输出时候 顺序表区别:倒序输出,顺序表正序输出;注意判断条件  void pop(stack l){ if(l.top==-1){ printf("0");  } else { while(l.top!=-1){ printf("%d",l....
  • 学完链表后就学了,一直想用代码实现下,可是要打工啊·······都连续加了两晚夜班了,累死了······今天休息,用了些时间写了写,还是以前一样希望新手一起学习, 也希望得到大神指导。 看代码吧...
  • 试编写双栈初始化,判断空、满、进栈和出栈等算法函数。 #include<iostream> using namespace std; typedef struct { int top[2], bot[2]; int *V; int m; }DblStack; void ShowM
  • // 定义栈的类型为整形 s.push(a); // 把元素 a 加入栈 s.pop(); // 删除栈顶的元素 s.top(); // 返回栈顶的元素 s.empty(); // 判断栈是否为空(是空的话返回true) s.size(); // 返回栈中元素个数 ....
  • 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。问题描述示例:例如一个输入序列为123456,能否得到436512135462的出栈序列。解...
  • 编写程序,实现顺序栈的创建、进栈和出栈等基本操作算法。 (1) 创建包含任意个元素的顺序栈。 (2) 进栈一个任意元素。 (3) 出栈一个任意元素。 (4) 取栈顶元素并输出。 *(5) 删除栈中值为给定值的元素。 ...
  • 用不带头结点单链表存储链栈,设计初始化、判断是否为空、进栈和出栈等相应算法 二、问题分析 不带头结点单链表lst为空条件是lst=NULL,进栈和出栈操作都是在表头进行 三、问题解答 void initStack...
  • 试编写对任一进栈和出栈运算C函数push(x, i)和pop(i),i=l、2。其中i=1表示左边的栈,i=2表示右边的栈。要求在整个数组元素都被占用时才产生溢出。 Status Push (SqStack &S,SelmType e){ if(S.top 1...
  • 进栈和出栈

    2016-08-15 22:31:00
    (stack)队列(queue): 其实都是普通数组,只不过调用了不同API而已 : 一端封闭,只能从另一端进出数组 FILO 何时使用: 希望始终使用最新进入数组元素时 如何使用: 1. 从结尾出入 入栈(压栈): arr.push...
  • 栈的分类可以分为:静态栈和动态栈两种,本篇内容讲的即为动态栈的入栈和出栈。 #include"stdio.h" #include"malloc.h" #include"stdlib.h" typedef struct node//定义节点 { int data;//数据域 struct node * next;...
  • C语言实现顺序栈的创建操作(进栈出栈,打印等等) 往期文章地址: C语言实现顺序表的创建及基本操作 C语言实现单链表的创建及基本操作 本来我在上次的文章结尾说下一篇我想写循环链表的,今天翻开课本仔细看了...
  • @数据结构C/C++版(5)《栈的顺序存储结构以及进栈和出栈操作的实现》 顺序存储结构可以实现一片连续的存储空间,相对于链式则会出现内存大小较难调节。 #include<stdio.h> #include<stdlib.h> #define ...
  • 安卓 碎片 如何实现类似 活动 栈的 进栈 出栈 碎片 的 事物管理器 内部维持了 一个双向链表结构, 可以记录每次添加的碎片 替代的 碎片。 然后 后退的时候, 会自动 出栈。 碎片,可以容易实现 局部更新。 ...
  • 顺序栈链栈的插入删除 一 需求分析 1在演示程序中出现的元素以数字出现定义为 int 型 2演示程序在计算机终端上用户在键盘上输入演示程序中规定的运算命令 相应的输入数据运算结果显示在终端上 3顺序栈的程序执行...
  • C语言下的进栈出栈操作

    千次阅读 2017-09-27 19:17:12
    3,先进后出(LIFO),最先进栈的必定最后出栈。类比于堆放一摞书,最先放在桌上的到后面一定被压在最下面,如果规定拿书只能从最上面拿的话,故只能最先放的书最后才能被拿到。以下是进栈出栈的实现。
  • C语言实现顺序栈的创建操作(进栈出栈,打印等等 今天闲来无事,就水一篇文章。关于链栈的创建各项基本操作的,链表真的很像,主要记住栈是先进后出的规则就行。 链栈的结构定义 #include<stdio.h> ...
  • 顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中数据元素,由于入栈和出栈运算都是在栈顶进行,而栈底位置是固定不变的,可以将栈底位置设置在数组空间的...
  • 文章目录栈的定义栈的存储栈上的基本操作初始化判空操作进栈操作出栈操作读栈顶元素遍历栈销毁栈完整代码及实例共享栈 栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表。 栈的示意图: 栈顶Top:...
  • 文章目录一,栈的定义二,顺序栈 一,栈的定义 栈是限定仅在表尾进行插入删除操作的线性表 允许插入删除的一端称为栈顶,另一端称为栈底。...栈的插入操作,叫做进栈,也称压栈,入栈 栈的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,821
精华内容 1,128
关键字:

栈的进栈和出栈