数据结构实验之链表四:有序链表的归并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <cstring>
using namespace std;
struct node
{
int data;
struct node *next;
};


int main ()
{
std::ios::sync_with_stdio(false);

int length1,length2;
struct node *head1,*head2,*tail1,*tail2,*p1,*p2,*tmp;

head1 = new node;
tail1 = head1;
head1->next = NULL;

head2 = new node ;
tail2 = head2;
head2->next = NULL;


cin >>length1>>length2;

while(length1 -- )
{
p1 = new node ;
cin>>p1->data;
tail1->next = p1;
tail1 = p1;
}
p1->next = NULL;

while(length2 -- )
{
p2 = new node ;
cin>>p2->data;
tail2->next = p2;
tail2 = p2;
}
p2->next = NULL;

p1 = head1;
p2 = head2;


struct node *head,*tail;

head = new node;
head->next = NULL;
tail = head;

p1 = head1->next;
p2 = head2->next;


while(p1&&p2){
if(p1->data < p2->data){
tail->next = p1;
p1 = p1->next;
} else {
tail->next = p2;
p2 = p2->next;
}
tail = tail->next;
}


if(p1){
tail->next = p1;
} else {
tail->next = p2;
}

delete(head2);
delete(head1);

p1 = head->next;
while(p1->next!=NULL){
cout<<p1->data<<' ';
p1 = p1->next;
}

cout << p1->data<<endl;

return 0;
}

数据结构实验之链表三:链表的逆置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <cstring>
using namespace std;
struct node
{
int data;
struct node *next;
};


int main ()
{
std::ios::sync_with_stdio(false);

struct node *head, *tail, *p, *tmpNode;
head = new node;
head->next = NULL;
tail = head;

int num;

while(1)
{
p = new node;
p->next = NULL;
cin >> num ;
if(num == -1)
{
break;
}
p->data = num;
tail->next = p;
tail = p;
}

p = head->next;
head->next = NULL;

while(p->next != NULL)
{
tmpNode = p->next;
p->next = head->next;
head->next = p;
p = tmpNode;
}
p->next = head->next;
head->next = p;

p = head->next;
while(p->next != NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<p->data<<endl;;

return 0;
}

数据结构实验之链表二:逆序建立链表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cstring>
using namespace std;
struct node
{
int data;
struct node *next;
};

int main ()
{
std::ios::sync_with_stdio(false);
struct node *head, *tail, *p;
head = new node;
head->next = NULL;
tail = head;
int N ;
int tmpN;
cin>>N;
{
tmpN = N;
while(tmpN--)
{
p = new node;
cin >> p->data ;
p->next = head->next;
head->next = p;
}
p = head->next;
while(p->next!=NULL)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<p->data<<' ';

cout<<endl;
}

return 0;
}

数据结构实验之链表一:顺序建立链表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstring>
using namespace std;
struct node
{
int data;
struct node *next;
};

int main ()
{
std::ios::sync_with_stdio(false);
struct node *head, *tail, *p;
head = new node;
head->next = NULL;
tail = head;
int N ;
int tmpN;
cin>>N;
{
tmpN = N;
while(tmpN--)
{
p = new node;
p->next = NULL;
cin >> p->data ;
tail->next = p;
tail = p;
}
p = head->next;
while(p->next!=NULL)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<p->data<<' ';

cout<<endl;
}

return 0;
}


(背包问题?)[https://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3092.html]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
//std::ios::sync_with_stdio(false);
int n;
int sum ;
int w[2][20000];
int sV[20000];
int i = 0;
while (cin >> n >> sum)
{
i = 1;
while(i <= n)
{
cin>>w[0][i] >> w[1][i];
i++;
}
memset(sV,0,sizeof(sV));
for(int j = 0; j<= n ; j++)
{
for( int jj = sum ; jj >= w[0][j]; jj -- )
{
sV[jj] = max(
sV[jj],
sV[jj-w[0][j]]+w[1][j]
);
}
// for(int z = 0; z<=sum ;z++){
// cout<<sV[z]<<"\t";
// }
// cout<<endl;
}
cout<< sV[sum]<<endl;

}

return 0 ;
}

cin cout scanf printf

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用 scanf 函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

规定符 备注
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day21-ajax(灰常重要)

1、应用场景

asynchronous javascript and xml === ajax

注册用户的时候,要写用户名,写了用户名之后,只要你的光标离开这个input框,我就立马知道你这用户名是否被注册过(ajax) 让ajax去和服务器进行交互,交互完毕之后,收到服务器返回的结果,根据结果我再判断页面到底应该显示什么

页面没有刷新

在当前页面中通过ajax和服务器进行交互,达到局部刷新的效果

2、ajax使用

使用起来非常的简单,ajax就是js中的一个对象,通过调用这个对象的方法就完成了和服务器的交互

创建对象

谷歌、火狐、Opera、IE7以上

var xhr = new XMLHttpRequest(); //主流浏览器中创建ajax对象的方式

var xhr = new ActiveXObject("Microsoft.XMLHTTP"); //垃圾浏览器的方式

var xhr = new ActiveXObject("Msxml2.XMLHTTP");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.3.0");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.5.0");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.6.0"); //IE维护的最高版本

get方式

xhr.open('get', '1.php?username=goudan&password=123');

xhr.send();

post方式

xhr.open('post', 'post.php');

xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');

xhr.send('username=goudan&password=123');

onreadystatechange :当ajax状态改变的时候触发这个事件

readyState(01234) : ajax的状态

0:初始化

1:执行了open方法

2:执行了send方法

3:得到了部分响应数据

4:得到了全部的响应数据

这里面我们关心的就是4,到4的时候数据就过来了

status:http的状态码 200

responseText:现在都是使用这个

responseXML:这个现在已经不用了

将JSON字符串转化为js对象

//第一种方式

var obj = JSON.parse(xhr.responseText);

//第二种方式

var obj = eval('(' + xhr.responseText + ')');

将js对象转化为JSON格式的字符串

var str = JSON.stringify(obj);

3、ajax函数封装

encodeURIComponent

4、同步和异步

同步:前端在等待请求结果,结果来了之后代码再往下进行

异步:前端不等待请求结果,结果来了直接执行提前写好的回调函数即可

【注】事件绑定的代码我们都要写到open方法的上面。

5、跨域

localhost 127.0.0.1 不是同一个域

localhost www.wokao.com

在php文件中中写如下代码

header('Access-Control-Allow-Origin:*');

(2)jsonp json with padding

6、用户注册

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day20-自动播放选项卡、懒加载、瀑布流

location

href,protocol,hostname,port,pathname,search

location.href = 'http://www.baidu.com' 或者 location = 'http://www.baidu.com'

iframe

a b c d(location.href )

parent.location.href 父级实现跳转

top.location.href 最顶层的实现跳转

reload(); //刷新

parent.location.reload();

top.location.reload();

正则对象

和php中的是一样的,只不过写法稍微有点不同

1、js验证表单内容(获取焦点)

document.fm.username.focus();

2、select下拉框

selectedIndex

options

充话费效果

3、自动播放选项卡

4、懒加载(延迟加载)

5、瀑布流

选择法、冒泡法、快速排序 (下去要查一下这些算法)

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day19-BOM、表单

<html>

<head>

<meta charset='utf-8'>

</head>

<body>

</body>

</html>

BOM:browser object model 没有标准

window的属性和方法

document

history

location

navigator

event

setInterval

setTimeout

DOM:document object model w3c(标准统一)

1、事件

事件绑定

addEventListener(事件 'click', 方法) 主流浏览器

attachEvent(事件 'onclick', 方法) 垃圾(ie)浏览器

removeEventListener

detachEvent

事件对象

事件映射到js中也是一个对象,这个对象的获取方法不一样

主流获取对象方式:在闭包中写一个参数ev

ie浏览器获取方式:是window的一个属性 window.event

//兼容性写法获取事件对象

var oEvent = ev || event;

取消事件冒泡 cancelBubble\stopPropagation()

上面两个都是event事件的属性和方法

cancelBubble:属性设置为true 均可以

stopPropagation():方法 谷歌、火狐可以,ie不可以

子对象绑架父对象

事件源对象

srcElement 谷歌和ie可以 火狐不可以

target 谷歌和火狐可以 ie不可以

拖拽效果

获取鼠标的x和y坐标

oEvent.clientX, oEvent.clientY

键盘事件

event.keyCode

2、小游戏

3、小知识点

禁止鼠标右键(oncontextmenu)

超链接和点击事件同时触发

表单里面的 type=submit有默认提交的功能,也可以阻止

return false; //万能方法

下面两个有的不行,慎重使用

oEvent.returnValue=false

oEvent.preventDefault()

4、window对象

打印效果

window.print();

弹窗效果:window.alert\window.confirm\window.prompt

打开和关闭

open

close

history

back()

go()

location

href,protocol,hostname,port,pathname,search

location.href

reload();

navigator

navigator.appName   Web浏览器全称 都是netscape

navigator.appVersion  Web浏览器厂商和版本的详细字符串

navigator.userAgent   客户端绝大部分信息

navagator.platform   浏览器运行所在的操作系统

5、正则对象

简单

6、表单对象

三种查找方法

submit()方法

method属性

action属性

失去焦点得到焦点

js验证表单内容

附加功能:

积分功能:黄瓜5 西瓜3 葡萄1

吃完:弹出小红旗

开始:10 ====》(20-100)

封装pdo版本的model类

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day18-DOM操作、吸顶条、事件绑定

<html>

<head>

<meta charset='utf-8'>

</head>

<body>

</body>

</html>

1、全选、全不选、反选

2、处理className兼容

IETester(用来查看所有ie浏览器的兼容性)

//getElementsByName 必须是document对象

getElementById 必须是document对象

getElementsByTagName document和父对象都可以

getElementsByClassName document和父对象都可以

3、DOM节点操作

children 所有的子对象 (直接子节点)

parentNode 父对象

火狐或者谷歌

firstElementChild 长子

lastElementChild 老幺

previousElementSibling 哥哥

nextElementSibling 弟弟

IE 6/7/8

firstChild

lastChild

previousSibling

nextSibling

tagName //得到标签名,得到的为大写的标签名

4、添加删除节点

createElement 添加节点 只能通过document来添加

removeChild 删除节点 父对象或者document都可以

appendChild 追加节点

insertBefore 插入节点

div中添加图片

5、setAttribute getAttribute

通过点和中括号只能获取官方属性

通过上面两个可以获取自定义的和官方的

6、添加上传文件

7、弹出图片

8、吸顶条

offsetTop 距离顶部的值

offsetLeft 距离左边的值

offsetWidth 宽度

offsetHeight 高度

以上属性,只能读取,不能设置

onscroll事件

clientWidth : 在h5标准下,获取使用documentElement 不在的话使用body

clientHeight : 在h5标准下,获取使用documentElement 不在的话使用body

document.body.scrollTop : 获取卷起的高度

吸顶条实现

吸顶条抖动问题

9、右底部广告、短信倒计时

右下角弹出大娟

思考:qq头像资料

0%