赞
踩
序号 | 说明 | 栈内 | 栈外 | 序号 | 说明 | 栈内 | 栈外 |
---|---|---|---|---|---|---|---|
1 | a入栈 | a | 8 | e入栈 | ae | bdc | |
2 | b入栈 | ab | 9 | f入栈 | aef | bdc | |
3 | b出栈 | a | b | 10 | f出栈 | ae | bdcf |
4 | c入钱 | ac | b | 11 | e出栈 | a | bdcfe |
5 | d入栈 | acd | b | 12 | a出枝 | bdcfea | |
6 | d出栈 | ac | bd | 13 | g入栈 | g | bdcfea |
7 | c出栈 | a | bdc | 14 | g出栈 | bdcfeag |
- int Judge(char A[]) {
- //判断字符数组A中的输入输出序列是否是合法序列。如是,返回true,否则返回false
- i=0;
- j=k=0; //i为下标,j和k分别为字母I和O的个数
- while (A[i]!='\0') { //未到字符数组尾
- switch(A[i]){
- case 'I' ; j++; break; //入栈次数增 1
- case 'O' : k++;
- if (k>j ) { printf ("序列非法\n") ; exit (0) ; }
- }
- i++; //不论A[i]是“I”或“0”,指针i均后移
- } //while
- if (j!=k) {
- printf ("序列非法\n" );
- return false;
- }else{
- printf ("序列合法\n");
- return true;
- }
- }
- int dc(LinkList L, int n){
- //h是带头结点的n个元素单链表,本算法判断链表是否是中心对称
- char s[n/2];int i=1; //i记结点个数,s字符栈
- P=L->next; //p是链表的工作指针,指向待处理的当前元素
- for{i=0;i<n/2;i++) { //链表前一半元素进栈
- s[i]=p->data;
- p=p->next;
- }
- i--; //恢复最后的i值
- if(n%2==1) //若n是奇数,后移过中心结点
- p=p->next;
- while(p!=NULL && s[i] ==p->data) { //检测是否中心对称
- i--; //i充当找顶指针
- p=p->next;
- }
- if (i==-1) //桟为空找
- return 1; //链表中心对称
- else
- return 0; //链表不中心对称
- }
- #define maxsize // 两个栈共享顺序存储空间所能达到的最多元素数
- #define elemtp int //假设元素类型为整型
- typedef struct{
- elemtp stack[maxsize]; //栈空间
- int top [2]; //top为两个栈顶指针
- }stk;
- stk s; //s是如上定义的结构类型变量,为全局变量
- int push(int i, int x){
- //入栈操作。i为栈号,i=0表示左边的s1栈,i=1表示右边的s2栈,x是入栈元素
- //入栈成功返回1,否则返回0
- if(i<0 || i>1){
- printf ("栈号输入不对");
- exit(0);
- }
- if(s.top[1]-s.top[0]==1){
- printf ("栈已满\n");
- return 0;
- }
- switch(i){
- case 0: s.stack[++s.top[0]] = x; return 1; break;
- case 1: s.stack[--s.top[1]] = x; return 1;
- }
- }
- elemtp pop(int i) {
- //退栈算法。i代表栈号,i=0时为s1栈,i=l时为s2栈
- //退栈成功返回退栈元素,否则返回-1
- if(i<0||i>1){
- printf ("栈号输入错误\1n");
- exit(0);
- }
- switch(i) {
- case 0:
- if (s.top[0]==-1) {
- printf ("栈空\n");
- return -1;
- }else
- return s.stack[s.top[0]--];
- case 1:
- if(s.top[1]==maxsize){
- printf ("栈空\n");
- return -1;
- }else
- return s.stack[s.top[1]++];
- }//switch
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。