收藏此站 联系我们 网站
当前位置:首页» 网站推广 » 【建站服务】通许申请400电话费用【通许企业全国热线电话办理】通许开通400电话电信价格、通许微信公众号代运营外包托管、通许网店编辑装修美工、通许网站推广优化大概需要多少钱-域名申请

【建站服务】通许申请400电话费用【通许企业全国热线电话办理】通许开通400电话电信价格、通许微信公众号代运营外包托管、通许网店编辑装修美工、通许网站推广优化大概需要多少钱-域名申请

作者: 风兰 . 阅读量: 3 . 发表时间:2022-09-20 15:33:43

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


通许申请400电话费用【通许企业全国热线电话办理】通许开通400电话电信价格、通许微信公众号代运营外包托管、通许网店编辑装修美工、通许网站推广优化大概需要多少钱


通许,古称咸平,历史文化悠久,现隶属国家历史文化名城七朝古都开封市,通许县地处河南省中东部,黄河中下游地区,属于豫东平原。地势西高东低,北高南低,呈由西北向东南倾斜状。 北临黄河,西望嵩山,东临豫东重镇商丘,南邻历史名城周口,西北距省会郑州80公里,北临古都开封40公里。位于国家战略中原经济区建设的核心区之内,是规划中衡潢铁路途经地。 [1] 

通许县下辖1个街道、5个镇、6个乡,东西宽30.5公里,南北长34.8公里,总面积766.22平方公里。是黄河南泛冲击而成的黄淮平原之一部分。全县土壤面积963742亩,其中两合土、沙土和淤土面积居多,占土壤面积的99.45%。河道属淮河流域涡河水系,主要河流为涡河,县境流长52公里。一级支流8条,二级支流6条,网系全县各乡。 [1]  第二批节水型社会建设达标县(区)。 [2] 

2018年全县生产总值完成259亿元。


4.3 基于javascript对象创建一个栈

前面我们已经学会使用数组来创建栈了,但在实际的应用中,处理大量数据的时候,需要评估如何使用数据是最高效的,使用数组的时间复杂度为0(n),n代表数组的长度,因为数组是一个有序集合,为了保证元素排序,会占用更多的内存我们需要迭代整个数组直到寻找到目标元素。


由此引出了对象创建栈

对象能直接获取元素,占用较少的内存空间,而且能够按照我们的要求排列数据。


操作步骤一共六步:


1、声明一个stack类

2、向栈中插入元素

3、验证栈是否为空和它的大小

4、从栈中弹出元素

5、查看栈值并将栈清空

6、创建tostring方法


代码实现:


//首先声明一个stack类

class  stack {

constructor () {

this.count = 0 ; //使用count来记录栈的大小,也能帮助我们删除和添加元素

this.items = {};

}

}

//向栈中加入元素

push(element) {

this.items[this.count ] = element;

this.count ++ ;

}

//在js中,对象是键值对的形式表现出来,我们使用count作为items对象的键名,插入的元素则是它的值,插入元素后,我们把count++,以便于下一个变量值插入

//count属性也表示栈的大小,我们可以返回count的size来计算栈的大小

size(){

return this.count;

}

//验证栈是否为空

isEmpty(){

return this.count === 0;

}

//查看栈顶的值并将栈清空

peek{

if (this.isEmpty()){

return unerfined;

}

return this.items{this.items.length - 1};

}

//清空栈把值变为构造函数的初始值就ok

clear (){

this.items = {};

this.count =  0;

}

//也可以使用另外一种方法:

while (!this.isEmpty()){

this.pop();

}

//创建tostring方法

在前面的数组中没有提string方法,是因为数组内置就有tostring属性,使用对象的时候,就需要我们手动去穿件了

toString () {

if  (this.isEmpty()){

return '';

}

let objStru=ing = '${this.items[0]}';

for  (let i = 1 ; i < this.count; i++ ){

objString = '${objstring},${this.items[i]}';

}

return objstring ;

}

//如果栈是空的,返回空值就ok了

//如果不是空的。底部第一个元素作为字符串的初始值,然后迭代整个栈


至此,一个基于对象创建的栈就完成了


4.4 保护数据结构内部元素

在我们创建一个栈后,别的同事也可能要使用,我们想保护内部的元素,只允许改变我们暴露的元素,这个时候就提及到了保护数据结构内部元素:

主要有三种方法:


1、下划线命名约定

下划线命名定义

一部分开发者喜欢在javascript中使用下划线命名约定来标记一个属性为私有属性

下划线命名约定实在属性名称之间加一个下划线-,不过这种方法只是一种约定,不能保护数据,看不懂的程序员就gg了


代码实现:


class stack {

constructor () {

this._count = 0;

this._items = {};

}

}


2、symbol实现类

使用symbol实现类

在es6中规定,symbol是不可变的,可以用作对象的属性


代码实现:


cosnt_items = symbol('stacItems');

class  stack {

constoructor () {

this[_items] = [];

}

//栈的方法

}


3、使用weakMap实现类

使用weakMap实现类

weakMap就能确保属性私有,weakMap是键值对的存在,键是对象,值是属性。

这点在第八章会重点讲解


4.5 javascript中用栈解决实际问题

使用栈实现阶乘的递归

使用栈来模拟5!的过程,首先将数字5到1压入栈,然后使用一个循环将数字挨个弹出并连乘

代码实现:


 1 function fact(num) {

 2     var stack=new Stack;

 3     while(num>0){

 4         stack.push(num--);

 5     }

 6     var sum=1;

 7     while(stack.length>0){

 8         sum*=stack.pop;

 9     }

10     return sum;

11 }

12 

13 console.log(fact(5)) //120


合法括号

下面的字符串中包含小括号,请编写一个函数判断字符串中的括号是否合法,所谓合法,就是括号成对出现


sdf(ds(ew(we)re)rwqw)qwrwq 合法

(sd(qwqe)sd(sd)) 合法

()()sd()(sd()dw))( 不合法


思路分析

括号存在嵌套关系,也存在并列关系,如果使用数组来存储这些括号,然后再想办法一对一的抵消掉,似乎可行。但是我们无法判断一个左括号对应的是哪一个右括号。在数组的角度思考这个问题,就有些困难。

现在,我们使用栈来解决这个问题

遇到左括号,就把做括号压入栈中

遇到右括号,判断栈是否为空,如果为空则说明没有左括号与之相对应,字符串括号不合法。如果栈不为空,则把栈顶元素移除,这对括号就抵消了。

当for循环结束,如果栈是空的,说明所有的左右括号都抵消了,如果栈力还有元素,则说明缺少右括号,字符串括号不合法。


代码实现:


function is_leagl_brackets(string){

var stack = new Stack();

for (var i = 0;i<string.length;i++) {

var item = string[i];

// 遇到做括号入栈

if(item == '('){

stack.push(item)

}else if (item == ')'){

// 遇到右括号,判断栈是否为空

if(stack.isEmpty()){

return false

}else {

stack.pop() // 弹出左括号

}

}

}

//  如果栈为空,说明字符串括号合法

return stack.isEmpty()

}

console.log(is_leagl_brackets('sdf(ds(ew(we)re)rwqw)qwrwq')) // true

console.log(is_leagl_brackets('(sd(qwqe)sd(sd))')) // true

console.log(is_leagl_brackets('()()sd()(sd()dw))(')) // false



实现一个有min方法的栈

供一个min方法,返回栈里的最小的元素,且时间复杂度为O(1)


function MinStack() {

var data_stack = new Stack();

var min_stack = new Stack();

// 用min_stack 记录每次 push 进来的元素之后,栈中的最小值

this.push = function (item) {

data_stack.push(item);

if(min_stack.isEmpty() || item < min_stack.top()){

min_stack.push(item)

}else {

min_stack.push(min_stack.top())

}

};

// 这样,每次pop之后,min_stack 也会将上次栈中的最小值弹出

this.pop() = function () {

data_stack.pop()

min_stack.pop()

}

this.min = function () {

return min_stack.top()

}

}


实际应用中还有许多,这里我就不挨个列举 了。

微信图片_20210425092605.jpg

通许申请400电话费用通许企业全国热线电话办理通许开通400电话电信价格、通许微信公众号代运营外包托管、通许网店编辑装修美工、通许网站推广优化大概需要多少钱


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务