
栈
哦吼~
心如欲壑,厚土难填。
展开
-
栈及其简单应用
//栈是一种特殊的线性表//是一种先进后出表(FILO),只有栈顶元素才能被操作//特殊:栈具有特殊的存储访问结构//栈的操作:入栈:向栈中存储数据元素(push)出栈:从栈中取出元素(pop)//栈顶指针(top):用来指向最后一个入栈元素//栈满(上溢)不可入栈(top==size-1)//入栈操作:top=top+1; s【top】=数据元素; 即s【++top】=数据...原创 2019-04-03 23:54:40 · 297 阅读 · 0 评论 -
设head指向一个非空单向链表,逆向输出所有结点数据域的值
//设置岗哨的方法#include<stdio.h>#include<stdlib.h>#define SIZE 10typedef struct node{ int data; struct node *next;}ElemSN;ElemSN *Createlink(int a[]){ ElemSN *h=NULL,*np; for(int i=SI...原创 2019-03-23 20:03:49 · 470 阅读 · 0 评论 -
链栈
//链栈相当于一条链表//头指针指向的为栈顶元素,NULL区域为栈底//入栈操作即不断头插//出栈操作即输出栈顶指针下移#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node *next;}ElemSN;ElemSN *Createlinkstack(in...原创 2019-04-12 00:08:58 · 181 阅读 · 0 评论 -
栈的应用——行编辑程序
//输入‘#’表示退格,输入‘@’表示退行符//例:输入:whli##ilr#e(s#*s)outcha@putchar(*s=#++);//输出:while(*s)putchar(*s++);#include<bits/stdc++.h>#define N 200int Push(char c[],int top,char stack[]){ int i; int...原创 2019-04-16 00:07:33 · 536 阅读 · 0 评论 -
栈与递归的应用------汉诺塔
/*汉诺塔的规则为:三根柱子,上面放有若干盘子,要求无论哪次移动,小盘子都必须在大盘子上面,完成其从A柱到C柱的移动这个问题可以用递归来实现①将A柱子上的盘子都移到C柱上,那么A柱子上的n-1个盘子就得先移到B柱上,这样A柱子上的编号为n的盘子就可以移到C柱子上了②然后将B柱上n-1个盘子,要移到C柱子上,应该先将B柱上的n-2歌盘子移到A柱子上,再将B柱编号为n-1的盘子移到C柱子上③依...原创 2019-04-17 22:41:01 · 213 阅读 · 0 评论 -
逆波兰表达式
//逆波兰表达式思路:构建两个栈,一个为数值栈,一个为运算符栈。//遇到栈内的运算符比字符串中的运算符低,就压栈,否则,出栈,并且数值栈元素出栈,并做计算//然后将计算结果压栈//重复此过程,最后将字符栈中字符出空,数值栈中元素压栈,输出栈底元素。#include<bits/stdc++.h>#define N 81using namespace std;int Leve...原创 2019-04-20 12:52:06 · 127 阅读 · 0 评论