数据结构知识点

本文涵盖了HTML中标签的分类、CSS中可继承与不可继承的属性、数据结构的基础知识,包括队列的满队列条件、常用数据结构如vector、list、deque的特性,以及各种排序算法的时间复杂度。还探讨了HTML元素的优先级和块级、内联元素的特性,以及IndexedDB等Web存储技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

* 转义字符 char s[] = "//123456/123456/t";

这样strlen(s)输出17.

 

 char s[] = "\\123456\123456\t";

 

这样strlen(s)输出12.

 

计算字符串长度时关键是要注意辨认转义字符;

含转义字符的有:

//

/123

/t

*    

\\ 表示字符 \
\123表示字符 {
\t 表示制表符
这些都是一个字符。

 

*  队列中,队列满的条件是:(rear+1)%QueueSize=front;

                                      队列长度公式是:(rear-front+QueueSize)%QueueSize。

* 1.vector  底层数据结构为数组 ,支持快速随机访问

2.list    底层数据结构为双向链表,支持快速增删

3.deque   底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问

4.stack   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时

5.queue   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时

6.45是适配器,而不叫容器,因为是对容器的再封装

7.priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现

8.set       底层数据结构为红黑树,有序,不重复

9.multiset  底层数据结构为红黑树,有序,可重复 

10.map      底层数据结构为红黑树,有序,不重复

11.multimap 底层数据结构为红黑树,有序,可重复

12.hash_set 底层数据结构为hash表,无序,不重复

13.hash_multiset 底层数据结构为hash表,无序,可重复 

14.hash_map      底层数据结构为hash表,无序,不重复

15.hash_multimap 底层数据结构为hash表,无序,可重复 

* 1:简单选择  最好时间 O(n^2)      平均时间O(n^2)      最坏时间 O(n^2)

2:直接插入  最好时间 O(n)         平均时间O(n^2)      最坏时间 O(n^2)

3:冒泡排序  最好时间 O(n)         平均时间O(n^2)      最坏时间 O(n^2)

4:希尔排序  最好时间 O(n)         平均时间O(logn)     最坏时间 O(n^s) 1<s<2

5:快速排序  最好时间 O(nlogn)  平均时间O(nlogn)   最坏时间O(n^2) 

6:堆排序      最好时间 O(nlogn)  平均时间O(nlogn)   最坏时间O(nlogn) 

7:归并排序  最好时间 O(nlogn)  平均时间O(nlogn)   最坏时间O(nlogn) 

* 1、常见的块级元素(自动换行, 可设置高宽 )有:
       div,h1-h6,p,pre,ul,ol,li,form,table,label等
2、常见的行内元素(无法自动换行,无法设置宽高)有:
       a,img,span,i(斜体),em(强调),sub(下标),sup(上标)等。
3、常见的行块级元素(拥有内在尺寸,可设置高宽,不会自动换行 )有:
     (button,input,textarea,select), img等
4、label元素不会是浏览器默认的行块级元素
HTML中的标签分为闭合标签和自闭合标签。 自闭合标签有<input/><img/><br/><link/><hr/>等

target的值:_blank        在新窗口打开链接                   _self         在当前框架中打开链接   _parent      在父框架打开链接           _top           在当前窗口打开链接                   framename 在指定框架打开链接

* 在html中,帧元素(frameset)的优先级最高,表单元素比非表单元素的优先级要高。

表单元素包括:文本输入框,密码输入框,单选框,复选框,文本输入域,列表框等等;

非表单元素包括:连接(a),div,table,span等。

所有的html元素又可以根据其显示分成两类:有窗口元素以及无窗口元素。有窗口元素总是显示在无窗口元素的前面。

有窗口元素包括:select元素,object元素,以及frames元素等等。

无窗口元素:大部分html元素都是无窗口元素。

https://www.cnblogs.com/asheng2016/p/7281784.html   BFC

学习HTML:iframe用法总结

http://blog.youkuaiyun.com/super_marioli/article/details/4437082

CSS中可以和不可以继承的属性

一、无继承性的属性

1、display:规定元素应该生成的框的类型

2、文本属性:

vertical-align:垂直文本对齐

text-decoration:规定添加到文本的装饰

text-shadow:文本阴影效果

white-space:空白符的处理

unicode-bidi:设置文本的方向

3、盒子模型的属性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left

4、背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment

5、定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index

6、生成内容属性:content、counter-reset、counter-increment

7、轮廓样式属性:outline-style、outline-width、outline-color、outline

8、页面样式属性:size、page-break-before、page-break-after

9、声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during

 

二、有继承性的属性

1、字体系列属性

font:组合字体

font-family:规定元素的字体系列

font-weight:设置字体的粗细

font-size:设置字体的尺寸

font-style:定义字体的风格

font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。

font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。

font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。

2、文本系列属性

text-indent:文本缩进

text-align:文本水平对齐

line-height:行高

word-spacing:增加或减少单词间的空白(即字间隔)

letter-spacing:增加或减少字符间的空白(字符间距)

text-transform:控制文本大小写

direction:规定文本的书写方向

color:文本颜色

3、元素可见性:visibility

4、表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout

5、列表布局属性:list-style-type、list-style-image、list-style-position、list-style

6、生成内容属性:quotes

7、光标属性:cursor

8、页面样式属性:page、page-break-inside、windows、orphans

9、声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation

 

三、所有元素可以继承的属性

1、元素可见性:visibility

2、光标属性:cursor

 

四、内联元素可以继承的属性

1、字体系列属性

2、除text-indent、text-align之外的文本系列属性

 

五、块级元素可以继承的属性

1、text-indent、text-align
 

在CSS中,html中的标签元素大体被分为三种不同的类型: 块状元素、内联元素(又叫行内元素)和内联块状元素。 

常用的块状元素有:

 <div>、<p>、<h1>…<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

 什么是块级元素? 

在html中<div>、<p>、<h1>、<form>、<ul>和<li>就是块级元素。设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。 a{display:block;} 

块级元素特点:

 1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行);

 2、元素的高度、宽度、行高以及顶和底边距都可设置。

 3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。 

 

常用的内联元素有: 

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code> 在html中,<span>、<a>、<label>、<strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。

当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使div 元素具有内联元素特点。

 div{ display:inline; } ...... <div>我要变成内联元素</div> 

内联元素特点: 

1、和其他元素都在一行上; 

2、元素的高度、宽度及顶部和底部边距不可设置; (这是答案^-^)

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。 

 

常用的内联块状元素有:

 <img>、<input>

 内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。

inline-block 元素特点: 

1、和其他元素都在一行上; 

2、元素的高度、宽度、行高以及顶和底边距都可设置。


 

1) <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />   

 //强制让文档的宽度与设备的宽度保持1:1,   

 //文档初始化缩放比例是1:1,   

 //不允许用户点击屏幕放大浏览,    

//允许用户缩放到的最大比例,   

 //尤其要注意的是content里多个属性的设置一定要用逗号+空格来隔开,如果不规范将不会起作用。其他属性有:width;height; initial-scale; minimum-scale; maximum-scale; user-scalable;

2) <meta name="apple-mobile-web-app-capable" content="yes" />    

 //iPhone私有标签,它表示:允许全屏模式浏览

3) <meta name="apple-mobile-web-app-status-bar-style" content="black" />    

//iPhone私有标签,它指定的iPhone中safari顶端的状态条的样式

4) <meta name="format-detection" content="telephone=no; email=no" />    //不识别邮件和不把数字识别为电话号码

IndexedDB是HTML5-WebStorage的重要一环,是一种轻量级NOSQL数据库;一个网站可能有一个或多个 IndexedDB 数据库,每个数据库必须具有惟一的名称。一个数据库可包含一个或多个对象存储。一个对象存储(由一个名称惟一标识)是一个记录集合。每个记录有一个键 和一个值。该值是一个对象,可拥有一个或多个属性。键可能基于某个键生成器,从一个键路径衍生出来,或者是显式设置。一个键生成器自动生成惟一的连续正整数。键路径定义了键值的路径。它可以是单个 JavaScript 标识符或多个由句点分隔的标识符。 Web Storage数据完全存储在客户端,不需要通过浏览器的请求将数据传给服务器,因此相比cookie来说能够存储更多的数据,大概5M左右。单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 (1).首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。   注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。[见参考资料5]   (2).理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。   对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。   由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:      1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。      2).IIS 6.0默认上传文件的最大大小是4MB。      3).IIS 6.0默认最大请求头是16KB。   IIS 6.0之前没有这些限制。[见参考资料5]   所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值