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

睢宁网站制作建设网站怎么收费

睢宁网站制作,建设网站怎么收费,wordpress 中文安装教程,wordpress全ajax主题文章目录 1. 栈2. 栈的初始化和栈的销毁3. 入栈和出栈(压栈)4. 取栈顶元素并打印5. 栈的练习题5.1 有效的括号 1. 栈 栈:也是一种线性表,其数据结构与动态顺序表的数据结构类似栈分为栈顶和栈底,在栈中,插入…

文章目录

  • 1. 栈
  • 2. 栈的初始化和栈的销毁
  • 3. 入栈和出栈(压栈)
  • 4. 取栈顶元素并打印
  • 5. 栈的练习题
    • 5.1 有效的括号

1. 栈

  • 栈:也是一种线性表,其数据结构与动态顺序表的数据结构类似
  • 栈分为栈顶和栈底,在栈中,插入数据和删除数据被称为入栈和出栈
  • 栈的相关操作都是在栈顶实现的,而栈底通常不会改变
  • 栈的底层结构可以通过数组和链表实现,但是链表在入栈和出栈操作上,会出现指针指向改变的问题,相对而言,数组反而只需要改变其size(在栈中被称为栈顶top)大小即可,因此用数组来实现栈的底层更佳

在这里插入图片描述


在这里插入图片描述


2. 栈的初始化和栈的销毁

在这里插入图片描述


//初始化
void StackInit(Stack* ps)
{assert(ps);ps->arr = NULL;ps->top = ps->capacity = 0;
}//销毁
void StackDestroy(Stack* ps)
{assert(ps);if (ps->arr)free(ps->arr);ps->arr = NULL;ps->top = ps->capacity = 0;
}

3. 入栈和出栈(压栈)

在这里插入图片描述


//入栈
void StackPush(Stack* ps, STDataType x)
{assert(ps);//空间满了--增容if (ps->top == ps->capacity){int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;STDataType* tmp = (STDataType*)realloc(ps->arr,newCapacity * sizeof(STDataType));if (tmp == NULL){perror("realloc fail!");exit(1);}ps->arr = tmp;ps->capacity = newCapacity;}//直接尾插ps->arr[ps->top] = x;ps->top++;
}//出栈
void StackPop(Stack* ps)
{assert(ps && ps->top);ps->top--;
}

4. 取栈顶元素并打印

在这里插入图片描述


//取栈顶元素
STDataType StackTop(Stack* ps)
{assert(ps && ps->arr);return ps->arr[ps->top - 1];
}//获取栈中有效元素个数
int StackSize(Stack* ps)
{assert(ps);return ps->top;
}//打印
void StackPrint(Stack* ps)
{assert(ps);while (ps->top){//栈顶元素依次出栈STDataType top = StackTop(ps);printf("%d ", top);//每次出栈top--ps->top--;}
}

5. 栈的练习题

5.1 有效的括号

  • 题目

在这里插入图片描述


  • 思路

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


#pragma once
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>
//栈的数据结构
typedef int STDataType;
typedef struct Stack
{STDataType* arr;int top;int capacity;
}Stack;//初始化
void StackInit(Stack* ps)
{assert(ps);ps->arr = NULL;ps->top = ps->capacity = 0;
}//销毁
void StackDestroy(Stack* ps)
{assert(ps);if (ps->arr)free(ps->arr);ps->arr = NULL;ps->top = ps->capacity = 0;
}//入栈
void StackPush(Stack* ps, STDataType x)
{assert(ps);//空间满了--增容if (ps->top == ps->capacity){int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;STDataType* tmp = (STDataType*)realloc(ps->arr, newCapacity * sizeof(STDataType));if (tmp == NULL){perror("realloc fail!");exit(1);}ps->arr = tmp;ps->capacity = newCapacity;}//直接尾插ps->arr[ps->top] = x;ps->top++;
}//出栈
void StackPop(Stack* ps)
{assert(ps && ps->top);ps->top--;
}//取栈顶元素
STDataType StackTop(Stack* ps)
{return ps->arr[ps->top - 1];
}//获取栈中有效元素个数
int StackSize(Stack* ps)
{assert(ps);return ps->top;
}//判断栈是否为空
bool StackEmpty(Stack* ps)
{assert(ps);return ps->top == 0;
}bool isValid(char* s)
{Stack st;StackInit(&st);char* pi = s;//遍历字符串while (*pi != '\0'){//入栈if (*pi == '(' || *pi == '[' || *pi == '{')StackPush(&st, *pi);else{//取栈顶,判断char top = StackTop(&st);if ((top == '(' && *pi == ')') || (top == '[' && *pi == ']') || (top == '{' && *pi == '}'))StackPop(&st);else{StackDestroy(&st);return false;}}pi++;}//对比结束bool ret = StackEmpty(&st) ? true : false;StackDestroy(&st);return ret;
}
http://www.yayakq.cn/news/495253/

相关文章:

  • 建设解锁卡网站首页东莞华为外包公司
  • 互联网行业信息网站建筑学长官网
  • 新网站建设运营年计划湘西州建设银行网站
  • 深圳建网站兴田德润实惠php购物网站开发背景
  • 网站登陆系统怎么做营销是做什么
  • 建设银行的网站特点网络推广加盟项目
  • 微网站制作工具温泉酒店网站建设方案
  • 国内做外贸网站的有哪些资料网站如何让百度抓取
  • 北京网站建设有哪些才艺多网站建设公司
  • qq人脸解冻自助网站网站建设怎么找客源
  • 做网站充值微信必须是企业网站建设app开发合同
  • 动漫毕业设计作品网站嵌入式软件能干一辈子
  • 高毅资产网站谁做的网页版梦幻西游虎灯令
  • 信用网站系统建设方案重庆建设工程人力资源官网
  • 零基础做地方门户网站写作网站排行榜
  • logo设计制作网站项目管理软件应用
  • 最专业的营销网站建设公司关于我们网页设计模板
  • 做响应式网站用什么框架广西河池住房和城乡建设厅网站
  • 一篇网站设计小结关于网站开发的一些论文
  • 套模板的网站为什么排名做不上去如何用天地图做网站
  • 中天建设有限公司官方网站广告设计培训学校
  • 网站建设哪家好服务网站开发人员工工资
  • 网站建设排行公司淘宝店做箱包哪个网站拿货
  • 南京网站设计建设公司电话本机建的网站打开却很慢
  • 自己做网站 知乎视频素材库网站免费
  • 如何做网站排名第一精准客源 获客
  • 网站开发工程师应聘书700字做注册任务网站源码
  • 如何设立网站网站首页图片怎么更换
  • 北京市网站设计-推广公司前端可以做网站吗
  • nodejs同时做网站和后台管理全国建设部网站官网