4 凌桓丶

尚未进行身份认证

暂无相关简介

等级
TA的排名 17w+

数据结构 栈与队列(二)队列的基本操作

队列队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性,就如同我们排队一样,先排的就先出去。而进行插入的一端叫做队尾,进行删除的一端叫做队头队列可以用顺序表和链表的结构来实现,在这里我们就用链表来实现。如入队1, 2, 3,4先入一个4在出一个1队列的当我们再全部出队列时,就从1,2,3,4还是1, 2, 3,4这就是栈的先进后...

2020-02-17 16:51:01

数据结构 栈与队列(一)栈的基本操作

栈栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端为栈顶,另一端为栈底。栈中元素遵循先进后出的原则假设我们依次将1, 2, 3, 4压入栈中当我们再全部出栈时,就从1,2,3,4变成了4,3,2,1这就是栈的先进后出的规则,知晓了原理,下一步就开始实现。这里我们结合栈的特性,选用顺序表来实现更优一些,而下期的队列则用链表实现数据结构...

2020-02-15 15:37:25

数据结构 表(三)带头双向循环链表

上一节里实现的是最简单的链表,在实际中那种链表不会单独用来存储数据,更多是作为其他数据结构的子结构,如图的邻接表等。而比较常用的就是带头双向循环链表。通过对比我们可以看出有三个不同,多了头节点,链表中的元素之间不再是单向而是双向,头尾节点相连,构成循环链表。虽然结构比起之前的复杂了一点,但是优势却十分明显。如普通链表要访问最后的元素时,只能通过遍历链表来取得,而这个可以直接取头节点的前一...

2020-02-13 16:34:52

python爬虫 爬取bilibili新番榜

这里用到的模块是request模块和beautifulsoup首先我们需要打开Bilibili新番榜的审查元素通过观察可以发现每一个动漫的信息都分别存在了li标签下的rank-item类中而所有具体的信息都在里面的div标签下的info类中了解了所在位置就可以开始编写代码首先设置代理及user-agent,然后下载页面上的内容,以text的格式返回def get_html(url...

2020-02-11 22:03:26

python爬虫 隐藏身份及设置代理

User-Agent当我们使用爬虫访问各大网站时,可能会被网站发现访问者只是一段python写出的代码,从而拒绝我们的访问,如果想要解决这个问题,我们可以去修改user-agent。首先,我们需要打开我们的浏览器,通过审查元素找到我们的user-agent一般通过一下两种方法来添加1.add_headers方法 req = request.Request(url) req.add_he...

2020-02-09 22:51:37

python爬虫 爬取有道翻译详解

这里我们使用python的urllib来实现首先,我们需要找到我们进行翻译时上传给服务器的数据。我们可以通过查找审查元素中的Network这一栏目下,选择执行Post方法的选项。在General下的Request URL就是我们访问的链接url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=r...

2020-02-08 16:25:52

数据结构 表(二)链表的基本操作

链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。对于表,图,栈,队列,树等数据结构,我们采用链式和顺序结构都可以实现。而链表又分为很多种,这一次先介绍最基础的链表因为链表的空间并不连续,所以我们无需像顺序表一样考虑到表的容量,实现起来也更为简单,同时,这次实现的链表是不带头的单向链表,因为没有头节点,也没有返回值,我们就需要直接对指针进...

2020-02-07 21:56:28

数据结构 表(一)顺序表的基本操作

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。对于表,栈,队列,树,图等等数据结构,我们都可通过选择顺序结构或者链式结构来进行实现,下面就演示一下表的顺序实现。因为这个太过简单所以就直接上代码数据结构typedef struct SeqList{ DATATYPE* data; // 指向动态开辟的数组 size_...

2020-01-17 13:02:12

程序环境和预处理:翻译环境和执行环境、宏、条件编译

程序环境和预处理:翻译环境和执行环境宏条件编译翻译环境和执行环境在ANSI C的任何一种实现中,存在两种不同的环境。第一种是翻译环境,在这个环境中源代码被转换成可执行的机器指令。第二种是执行环境,它用于实际执行代码。翻译环境我们写的代码是如何从一开始的.c文件变化为可执行的.exe文件,就是在这一步完成的。组成一个程序的每个源文件通过编译过程分别转换成目标代码每个目标...

2019-12-06 15:38:21

通讯录管理系统(C语言实现) 动态扩容,文件读写

通讯录可以用来存储个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。而一个通讯录的管理系统,应该至少具备增、删、查、改等几项功能,并要对其进行拓展。所以我们要实现的功能如下:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人对联系人进行排序通讯录应该是可扩容而非定长的通讯录的数据应该存储在文件当中,以便多次使用明...

2019-12-01 22:49:52

C语言 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组

动态内存管理目录:动态内存函数的介绍常见的动态内存函数的错误柔性数组为什么会有动态内存管理呢我们在日常使用中,创建一个数组,一个变量时都会开辟空间如: int a; //在栈上开辟一个四字节的空间 char str[5]; //在栈上开辟一个五字节的连续的空间但是上面这种开辟空间的方法都具有一个特点1. 空间开辟的大小是固定的,无法修改2. 声明数组的时候必须指...

2019-11-28 18:29:17

C语言 结构体,枚举,联合

目录:结构体枚举联合结构体结构是一些值的集合,这些值成为成员变量。结构的每个成员可以是不同类型的变量结构体的声明 struct s { char a; int b; }s1;这里的a和b就是结构体的成员变量,s1就是结构体的名字。当我们在声明结构体时,可以忽略掉结构体标签s,进行不完全声明 struct { char a; int b; }s2...

2019-11-22 14:36:31

结构体内存对齐,位段详解

在我们学习结构体时,可能会碰到几个难以理解的问题,一个是内存对齐,一个是位段。所以我想分享一下我对这两个问题的理解,来帮助大家更好的学习这两个知识点。内存对齐int main(){ struct { char i; char k; int j; }s1; struct { char i; int j; char k; }s2; printf("%d\...

2019-11-21 23:22:36

模拟实现字符串和内存操作函数(二):strncpy, strncat, strncmp, memcpy, memmove

模拟实现字符串和内存操作函数(二)目录:strncpystrncatstrncmpstrcmpmemcpymemmovestrncpychar* strncpy(char* dst, const char* src, size_t num)strncpy表示把src所指向的字符串中以src地址开始的前n个字节复制到dst所指的数组中,并返回被复制后的dst。strncp...

2019-11-19 22:43:19

模拟实现字符串和内存操作函数(一):strlen, strcmp, strcpy, strcat, strchr, strstr

模拟实现字符串和内存操作函数(一)目录:strlenstrcpystrcatstrcmpstrstrstrchrstrlensize_t strlen(const char* str)字符串以‘\0’作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以‘\0’结束。函数的返回值为size_t,是无符号类...

2019-11-18 21:05:20

C语言 指针的进阶(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

指针的进阶(二)目录:常量指针和指针常量数组参数和指针参数函数指针数组常量指针和指针常量在我们日常中,经常会用到一个关键字constconst是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。合理的运用const可以大幅度的提高代码的安全性和可读性。但是在指针中,c...

2019-11-10 15:21:18

C语言 指针的进阶(一):字符指针、数组指针、指针数组、函数指针

指针的进阶(一)目录:字符指针数组指针和指针数组函数指针字符指针在开始讲解这一章节之前,我们需要了解指针前面声明的类型的意义类型 * 指针名对于指针来说,我们在给指针进行声明时,我们声明的类型并不是指针的类型,而是指针所指向的地址的类型,也就是指针看待这段地址的方式,它该如何读取数据,它如果加一该移动多少位,只有了解了这个才能方便理解下面的内容我们首先来说的就是字符指针ch...

2019-11-09 20:22:44

斐波那契查找(黄金分割法查找)

要想能够理解这一算法,需要先了解1.二分查找https://blog.csdn.net/qq_35423154/article/details/1013835182.斐波那契数https://blog.csdn.net/qq_35423154/article/details/101684466黄金分割具有严格的比例性、艺术性、和谐性,蕴藏着丰富的美学价值,这一比值能够引起人们的美感,被认...

2019-10-30 20:56:06

插值查找法(按比例查找)

折半查找法:https://blog.csdn.net/qq_35423154/article/details/101383518当我们在使用折半查找法的时候,都会有个疑问,为什么一定要用折半,为什么不能折三分之一,四分之一呢?为什么我们不能根据我们查找的数值的不同而制定不同的比例来查找呢?于是,经过算法科学家的努力,插值查找法(按比例查找)诞生了。这个方法的实现非常简单,它仅仅修改了折半查找...

2019-10-29 13:06:26

深度剖析数据在内存中的储存

整形在内存中的存储一个变量的创建要在内存中开辟空间,空间的大小是根据不同的类型决定的。那数据在数据在所开辟的空间中是如何存储的呢?首先我们要了解三个概念:原码 反码 补码计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示正,用1表示负,而数值为的三种表示方法各不同。原码:直接将二进制按照正负数的形式翻译成二进制就可以。...

2019-10-24 23:22:32

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。