当前位置: 首页 > news >正文

哪些网站可以做淘宝基础销量高端品牌网站建设

哪些网站可以做淘宝基础销量,高端品牌网站建设,做网站排名seo,企业网站备案需要什么💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一、题目描述 二、解题思路 三、代码实现 一、题目描述 二、解题思路 问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配 使用栈的后进先…

💓 博客主页:C-SDN花园GGbond

⏩ 文章专栏:数据结构经典题目刨析(c语言)

目录

一、题目描述

二、解题思路 

三、代码实现 


 

一、题目描述

二、解题思路 

问题要求将三种类型括号匹配,其中包括顺序匹配数量匹配

使用栈的后进先出结构可以很好的解决这个问题:

根据栈独有的特点,具体操作:1、属于左括号,进行入栈处理。2、属于右括号进行出栈处理,然后进行匹配,不匹配就报错。我们既然选择用C语言来实现,就需要我们自己提前实现一个栈结构

先实现栈 :

//栈的初始化
void STInit(ST* pst)
{assert(pst);pst->a = NULL;pst->top = pst->capacity = 0;//top指向栈顶元素的下一个位置}
void STDestroy(ST* pst)
{assert(pst);free(pst->a);pst->a = NULL;pst->top = pst->capacity = 0;}
void STPush(ST* pst, STDatyType x)
{assert(pst);if (pst->top == pst->capacity){int newcapacity=pst->capacity==0 ? 4 : pst->capacity * 2;STDatyType* tmp =(STDatyType*)realloc(pst->a, newcapacity * sizeof(STDatyType));if (tmp == NULL){perror("ralloc fail");return;}pst->capacity = newcapacity;pst->a = tmp;}pst->a[pst->top] = x;pst->top++;
}
//出栈
void STPop(ST* pst)
{assert(pst);assert(pst->top > 0);pst->top--;
}
//得到栈顶元素
STDatyType STTop(ST* pst)
{assert(pst);assert(pst->top > 0);return pst->a[pst->top - 1];
}
//判空
bool STEmpty(ST* pst)
{assert(pst);return pst->top == 0;
}
//获取数据个数
int STSize(ST* pst)
{assert(pst);return pst->top;
}

遍历字符串
遇到左括号则压栈等待右括号匹配;
遇到右括号先进行判断,首先判断栈是否为空,如果为空则不可能完成匹配,直接判定无效


上述判定不成立再进行下列判断
如果此时栈顶的数据是与右括号匹配的左括号,则出栈,否则直接判定无效(顺序不匹配)
当字符串遍历完成时,如果栈为空,则说明括号全部匹配上了;否则说明数量不匹配

 

画图举例说明: 

第一种情况:数量顺序完全匹配时

第二种情况:数量匹配,顺序不匹配时 

 

第三种情况:数量不匹配时  

 

三、代码实现 

typedef char STDatyType;
typedef struct Stack
{STDatyType* a;int top;int capacity;}ST;
//栈的初始化
void STInit(ST* pst)
{assert(pst);pst->a = NULL;pst->top = pst->capacity = 0;//top指向栈顶元素的下一个位置}
void STDestroy(ST* pst)
{assert(pst);free(pst->a);pst->a = NULL;pst->top = pst->capacity = 0;}
void STPush(ST* pst, STDatyType x)
{assert(pst);if (pst->top == pst->capacity){int newcapacity=pst->capacity==0 ? 4 : pst->capacity * 2;STDatyType* tmp =(STDatyType*)realloc(pst->a, newcapacity * sizeof(STDatyType));if (tmp == NULL){perror("ralloc fail");return;}pst->capacity = newcapacity;pst->a = tmp;}pst->a[pst->top] = x;pst->top++;
}
//出栈
void STPop(ST* pst)
{assert(pst);assert(pst->top > 0);pst->top--;
}
//得到栈顶元素
STDatyType STTop(ST* pst)
{assert(pst);assert(pst->top > 0);return pst->a[pst->top - 1];
}
//判空
bool STEmpty(ST* pst)
{assert(pst);return pst->top == 0;
}
//获取数据个数
int STSize(ST* pst)
{assert(pst);return pst->top;
}bool isValid(char* s) 
{ST st;STInit(&st);while(*s){if(*s=='('||*s=='['||*s=='{'){STPush(&st,*s);}else//为右括号{if(STEmpty(&st)){STDestroy(&st);return false;}//栈不为空STDatyType top=STTop(&st);if(*s==')'&&top!='('||*s==']'&&top!='['||*s=='}'&&top!='{'){STDestroy(&st);return false;}//匹配然后出栈STPop(&st);}s++;}if(STEmpty(&st)){STDestroy(&st);return true;}else{STDestroy(&st);return false;}
}

 

 

http://www.shuangfujiaoyu.com/news/39268.html

相关文章:

  • 方庄网站建设市场调研表模板
  • 两个wordpress之间同步宁波seo优化项目
  • 网站开发建设与维护seo顾问
  • 企业网站html模板下载可口可乐搜索引擎营销案例
  • 学建网站 必须学那些知识百度竞价广告收费标准
  • 那个视频网站可以做gif口碑营销的形式
  • 广州公司注册地址可以是住宅吗seo确定关键词
  • 云主机可以做几个网站qq群引流推广平台
  • 做图片网站咋样十大营销手段
  • 工程项目管理软件app嘉兴seo
  • 暴雪游戏官网seo搜索引擎优化怎么优化
  • 门户网站建设及运营网站建设对企业品牌价值提升的影响
  • 网站建设中 动态图片有趣的软文
  • 东莞网站优化效果如何爱站小工具
  • 专门做网站推广的平台中国免费域名注册平台
  • 建筑设计公司资质等级关键词seo是什么意思
  • 广州那里有学做拼多多网站的游戏代理怎么做
  • 做那个类型的网站赚钱智能网站排名优化
  • 杭州微网站开发公司网站注册搜索引擎的目的是
  • 取消网站验证码宁波seo外包推广排名
  • 炫酷的html5网站免费关键词搜索工具
  • 南宁网站建设nayuwang企业推广
  • 网站设计评价百度收录怎么查询
  • 做网站销售说辞小程序推广接单平台
  • 做网站是怎样赚钱的公司网站推广
  • 网站系统怎么做的宁波网络建站模板
  • 个人养老金制度最新消息优化设计七年级下册语文答案
  • 盐山网站制作独立站搭建要多少钱
  • 上海大型网站制作seo赚钱暴利
  • 网站开发建设方案珠海百度seo