鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[技术交流] 括号匹配(栈的应用)

  [复制链接]
发表于 2017-5-7 23:59:48 | 显示全部楼层
需要,支持鱼C论坛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-23 12:56:54 | 显示全部楼层
想看啊啊啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-30 17:49:04 | 显示全部楼层
支持小甲鱼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-8 20:08:22 | 显示全部楼层
这么强,点个赞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-16 12:45:40 | 显示全部楼层
辛苦了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-17 23:17:49 | 显示全部楼层
学习下甲鱼老师
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-5 13:59:27 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>

  4. #define MAXSIZE 128

  5. typedef struct
  6. {
  7.     char *base, *top;
  8.     int capacity;
  9. } Stack;

  10. int InitStack(Stack *pstack)
  11. {
  12.     pstack -> base = pstack -> top = (char*)malloc(sizeof(char) * MAXSIZE);
  13.     if(!pstack -> base)
  14.         return 0;
  15.     pstack -> capacity = MAXSIZE;
  16.     return 1;
  17. }

  18. int Push(Stack *pstack, char ch)
  19. {
  20.     if(pstack -> top - pstack -> base >= pstack -> capacity)
  21.     {
  22.         pstack -> base = (char*)realloc(pstack -> base, (pstack -> capacity + 10) * sizeof(char));
  23.         pstack -> top = pstack -> base + pstack -> capacity;
  24.         pstack -> capacity += 10;
  25.     }
  26.     *(pstack -> top++) = ch;
  27. }

  28. void Pop(Stack *pstack, char *ch)
  29. {
  30.     *ch = *(--pstack -> top);
  31. }

  32. int Empty(Stack *pstack)
  33. {
  34.     return(pstack -> top - pstack -> base == 0);
  35. }

  36. int main()
  37. {
  38.     Stack mStack;
  39.     char buffer[MAXSIZE];
  40.     int i, len;

  41.     InitStack(&mStack);

  42.     gets(buffer);

  43.     len = strlen(buffer);

  44.     for(i = 0; i < len; i++)
  45.     {
  46.         /*if(buffer[i] == '(')
  47.         {
  48.             if(i + 1 < len && buffer[i + 1] == ')')
  49.             {
  50.                 i += 1;
  51.                 continue;
  52.             }
  53.         }
  54.         else if(buffer[i] == '[')
  55.         {
  56.             if(i + 1 < len && buffer[i + 1] == ']')
  57.             {
  58.                 i += 1;
  59.                 continue;
  60.             }
  61.         }*/

  62.         if(buffer[i] == '(' || buffer[i] == '[' || buffer[i] == '{' || buffer[i] == '<')
  63.             Push(&mStack, buffer[i]);
  64.         else if(buffer[i] == ')' || buffer[i] == ']' || bufffer[i] == '}' || buffer[i] == '>')
  65.         {
  66.             char temp;
  67.             Pop(&mStack, &temp);

  68.             if((temp == '(' && buffer[i] == ')') || (temp == '[' && buffer[i] == ']') ||
  69.                     (temp == '{' && bufffer[i] == '}') || (temp == '<' && buffer[i] == '>'))
  70.                continue;
  71.             else {
  72.                 printf("isn't matched.\n");
  73.                 return 0;
  74.             }
  75.         }
  76.     }

  77.     if(Empty(&mStack))
  78.         printf("matched.\n");
  79.     else
  80.         printf("isn't matched.\n");

  81.     return 0;
  82. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 14:45:37 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-20 10:31:59 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-25 09:40:06 From FishC Mobile | 显示全部楼层
来看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-13 13:50:04 | 显示全部楼层
这个功能不错,虽然我没用栈~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-18 18:06:00 | 显示全部楼层
瞅瞅
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-21 16:08:50 | 显示全部楼层
感谢小甲鱼老师
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-22 14:15:49 | 显示全部楼层
赞一个,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-22 16:53:16 | 显示全部楼层
支持
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-22 21:58:28 | 显示全部楼层
下载一个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-25 23:02:46 | 显示全部楼层
y
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-27 18:15:11 | 显示全部楼层
答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-27 18:19:13 | 显示全部楼层

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-30 09:17:46 | 显示全部楼层
遇到注释呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-2 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表