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

wordpress笔记seo优化外链平台

wordpress笔记,seo优化外链平台,万网网站建设教程,18款禁用软件app破解版数据结构《栈》 1、栈的概念及结构2、栈的实现3、练习: 1、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO&…

数据结构《栈》

  • 1、栈的概念及结构
    • 2、栈的实现
      • 3、练习:

1、栈的概念及结构

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端
称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。

压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶
出栈:栈的删除操作叫做出栈。出数据也在栈顶

在这里插入图片描述

2、栈的实现

栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的
代价比较小。

在这里插入图片描述

进栈、出栈展示:
在这里插入图片描述

实现栈,最好声明与定义分开成俩个文件来处理(头文件,h(介绍接口),实现文件.c(实现接口功能))

1、头文件.h

#include<stdio.h>
#include<assert.h>
#include<stdbool.h>
#include<stdlib.h>typedef int type;
#define N 10;
//静态栈(不常用,所以我们要实现的是动态栈)
typedef struct Stack
{type arr[N];int top;//栈顶
}Stack;//动态栈
typedef struct Stack
{type* a;int top;int capacity;
}sl;// 初始化栈
void Slint(sl* p);
// 入栈
void pushpop(sl* p, type x);
// 出栈
void STpop(sl* p);
// 获取栈顶元素
type STTop(sl* p);
// 获取栈中有效元素个数
int STsize(sl* p); 
// 检测栈是否为空,如果为空返回非零结果,如果不为空返回0 
bool empty(sl* p);
// 销毁栈
void destroy(sl* p);

实现文件.c

void Slint(sl* p)
{assert(p);p->a = NULL;p->capacity = 0;p->top = 0;
}void pushpop(sl* p, type x)
{assert(p);if (p->top == p->capacity){int newcapacity = p->capacity == 0 ? sizeof(type) : 2 * p->capacity;type* new = (type*)realloc(p->a, sizeof(type) * newcapacity);if (new == NULL){perror("realloc fail");return;}p->a = new;p->capacity = newcapacity;}p->a[p->top] = x;p->top++;}void STpop(sl* p)
{assert(p);p->top--;
}type STTop(sl* p)
{assert(p);assert(p->top > 0);return p->a[p->top - 1];
}bool empty(sl* p)
{assert(p);return p->top == 0;
}void destroy(sl* p)
{free(p->a);p->a = NULL;p->capacity = 0;p->top = 0;
}int STsize(sl* p)
{assert(p);return p->top;
}

3、练习:

括号匹配问题

第一步->实现一个栈,在用栈的后进先出特性来匹配括号。
情况1:如果为‘(’、‘[’、‘{’。左括号入栈

情况2:如果为‘)’,‘}’,‘]’右括号与栈顶匹配

//实现一个栈
typedef char type;typedef struct Stack
{type* a;int top;int capacity;
}sl;void Slint(sl* p);void destroy(sl* p);void pushpop(sl* p, type x);void STpop(sl* p);type STTop(sl* p);bool empty(sl* p);int STsize(sl* p);void Slint(sl* p)
{assert(p);p->a = NULL;p->capacity = 0;p->top = 0;
}void pushpop(sl* p, type x)
{assert(p);if (p->top == p->capacity){int newcapacity = p->capacity == 0 ? sizeof(type) : 2 * p->capacity;type* new = (type*)realloc(p->a, sizeof(type) * newcapacity);if (new == NULL){perror("realloc fail");return;}p->a = new;p->capacity = newcapacity;}p->a[p->top] = x;p->top++;}void STpop(sl* p)
{assert(p);p->top--;
}type STTop(sl* p)
{assert(p);assert(p->top > 0);return p->a[p->top - 1];
}bool empty(sl* p)
{assert(p);return p->top == 0;
}void destroy(sl* p)
{free(p->a);p->a = NULL;p->capacity = 0;p->top = 0;
}int STsize(sl* p)
{assert(p);return p->top;
}
//匹配括号
bool isValid(char* s) {sl s3;Slint(&s3);while (*s){if (*s == '(' || *s == '{' || *s == '[')//情况1{pushpop(&s3, *s);}else//情况2{if(empty(&s3)){return false;}char top = STTop(&s3);STpop(&s3);if ((top == '(' && *s != ')') || (top == '[' && *s != ']') || (top == '{' && *s != '}')){return false;}}s++;}bool ret=empty(&s3);//判断栈有没有数据destroy(&s3);return ret ;}
}
http://www.15wanjia.com/news/38448.html

相关文章:

  • 鸡西网站建设百度站长工具收费吗
  • 长沙小升初有什么做试卷的网站百度网盘电脑版下载
  • 网站后端都需要什么意思百度搜索引擎优化相关性评价
  • wordpress 页面编辑失败seo营销的概念
  • 中国城乡和住房建设部网站首页平台引流推广怎么做
  • 网站策划工资一般多少应用宝aso优化
  • 大一网页设计个人网站代码最新新闻今天最新新闻
  • 网站建设百度资源谷歌浏览器中文手机版
  • 做网站推广有效果吗百度账号管家
  • 中国建设银行网站-个人客免费发布信息网平台
  • 做可直接下单购买的网站宁波seo排名公司
  • html5 企业网站模板seo网站推广软件排名
  • 学生网页设计主题苏州首页关键词优化
  • 做pc端网站流程企业网页设计报价
  • 知名网站开发哪家好河南网站推广优化
  • 网站一般用什么软件做的营销推广软文案例
  • 镇江网站关键字优化seo排名是什么意思
  • 做网站的系统功能需求电商运营的基本内容
  • 沈阳网站做网络营销推广服务商
  • 京东app下载官网免费下载深圳aso优化
  • 自己做国外网站买衣服百度指数什么意思
  • angularjs后台管理系统网站seo超级外链发布
  • 整个网站全部乱码昆明seocn整站优化
  • 夜夜做新郎网站在线视频广告软文小故事200字
  • 网站建站平台广告新东方烹饪学校
  • 做企业网站 asp的cms系统哪个好网络营销推广目标
  • 忻州市中小企业局网站营销方案范文100例
  • 网站展示 包括什么网页设计工资一般多少
  • 淘宝客网站哪里可以做seo公司 彼亿营销
  • 个人网站模版下载推广公众号