链栈 - 日理万妓 2023-08-17 15:15 80阅读 0赞 typedef struct LinkNode { ElemType data; struct LinkNode* next; }LinkStNode; 初始化 void InitStack(LinkStNode*& s) { s = (LinkStNode*)malloc(sizeof(LinkStNode)); s->next = NULL; } 销毁 void DestroyStack(LinkStNode*& s) { LinkStNode* pre = s; LinkStNode* p = pre->next; while (p != NULL) { free(pre); pre = p; p = pre->next; } free(pre); } 判断栈是否为空 bool StackEmpty(LinkStNode* s) { return (s->next == NULL); } 进栈 void Push(LinkStNode * &s, ElemType e) { LinkStNode* p = (LinkStNode*)malloc(sizeof(LinkStNode)); p->data = e; p->next = s->next; s->next = p; } 出栈 bool Pop(LinkStNode * &s, ElemType & e) { LinkStNode* p; if (s->next == NULL) return false; else { p = s->next; e = p->data; s->next = p->next; free(p); return true; } } 取栈顶元素 bool GetTop(LinkStNode * s, ElemType & e) { if (s->next == NULL) return false; else { e = s->next->data; return true; } } 括号匹配() bool Match(ElemType exp[]) { bool match = true; ElemType e; int i = 0; LinkStNode* st = (LinkStNode*)malloc(sizeof(LinkStNode)); st->next = NULL; while (exp[i] != '\0') { if (exp[i] == '(') Push(st, exp[i]); if (exp[i] == ')') { if (GetTop(st, e) == true) { if (e == '(') { Pop(st, e); } else { match = false; break; } } else { match = false; break; } } i++; } if (!StackEmpty(st)) return false; DestroyStack(st); return match; } 转载于:https://www.cnblogs.com/KIROsola/p/11341966.html
相关 链栈 typedef struct LinkNode { ElemType data; struct LinkNode next; }LinkSt - 日理万妓/ 2023年08月17日 15:15/ 0 赞/ 81 阅读
相关 链栈 链栈的基本操作与顺序栈一致,但是实现方法有较大差异 首先是在成员变量上,链栈中只包含了一个top指针(主要原因是链栈是动态存储的,在程序运行过程中给需要的变量分配内存,而顺 梦里梦外;/ 2023年02月27日 13:34/ 0 赞/ 14 阅读
相关 java栈链_java实现链栈 标签: 接下来,学习java实现链栈。 链栈类代码: package linkedstack; public class LinkStack \{ private E 悠悠/ 2022年11月04日 00:49/ 0 赞/ 192 阅读
相关 链栈 \define OK 1 \define ERROR 0 \define TRUE 1 \define FALSE 0 \define INFEASIBLE - 怼烎@/ 2022年08月25日 05:27/ 0 赞/ 110 阅读
相关 链栈 package com.loong.datastructure; / 链栈 @author Loong @param <E> / p 不念不忘少年蓝@/ 2022年07月19日 02:17/ 0 赞/ 130 阅读
相关 链式栈 2016年7月23日15:39:13 为什么需要链式栈? 这是因为,顺序栈的使用需要事先指定存贮空间的大小,如果静态分配的存贮空 ╰+哭是因爲堅強的太久メ/ 2022年07月16日 13:29/ 0 赞/ 251 阅读
相关 链栈 include <iostream> using namespace std; class node { friend clas 妖狐艹你老母/ 2022年07月14日 07:22/ 0 赞/ 117 阅读
相关 链式栈 链式栈 // //Description:链式栈 // include <iostream> include <malloc.h> 偏执的太偏执、/ 2022年06月18日 01:56/ 0 赞/ 183 阅读
相关 链栈 include<stdio.h> typedef struct node { int data; struct node 系统管理员/ 2022年06月16日 13:15/ 0 赞/ 140 阅读
相关 链栈 //linkstack.h include<string.h> include<malloc.h> include<limits.h> inc 「爱情、让人受尽委屈。」/ 2022年06月03日 20:42/ 0 赞/ 136 阅读
还没有评论,来说两句吧...