- 博客(14)
- 收藏
- 关注
原创 顺序栈
如果说队列是先进先出,那么这个栈就是先进后出(就好比是桶装可比克,生产时机器将先生产好的放入桶中,我们购买了吃它的时候是从上边一片片的咪西)。之所以将这么个例子,是因为栈是一个非常重要的数据知识(当然队列等同样重要哈哈),比如常听一些系统堆栈呀什么的,就是说的这玩意儿。 再有就是在栈里的存数据了,是不能查看数据的(就不能说什么遍历数据,显示出来了),只能返回其大小,原理就是同可比克,它是封装的,外界只能查看栈顶的数据! 栈的主要操作有: 查看栈顶数据(top) 进栈(push) 出栈(pop) 话不多说上
2020-05-30 16:18:41 148
原创 c++11多线程
关于c++11的多线程(一) : 1、创建线程 thread+线程名 (头文件为 thread) 2、线程加锁 mutex+锁名 (头文件为mutex) 3、阻塞等待 thread.join(线程名) 4、线程分离 thread.detach(线程名) 创建线程 #include<iostream> #include<thread> using namespace std; void thread_one()//线程一函数 { cout<&
2020-08-25 18:12:37 267
原创 网络通信时序(2)
TCP状态时序详解 三次握手:主动发起连接请求端: CLOSE(关闭状态)-- 发送SYN -- SEND_SYN -- 接收ACK,SYN -- SEND_SYN(此时状态不变)-- 发送ACK -- ESTABLISHED(数据通信状态) 四次挥手:主动关闭连接请求端: ESTABLISHED(数据通信状态) -- 发送FIN -- FIN_WAIT_1(中间段处于的状态)-- 接收ACK -- FIN_WAIT_2(半关闭状态)
2020-06-06 17:25:57 340
原创 通讯录项目
这个项目也是阿编刚学习c++时的第一个起手练习,直接没有难度。在这里是用的c风格的方式码的代码 不过问题不大。 具体操作阿编都在代码注有解释,话不多说上代码~ #include<iostream> #include<string> using namespace std; #define MAX 100 //联系人个数最大值 void showmend() //菜单类的封装 {
2020-06-06 16:47:06 187
原创 基础算法整合(1)
在数据结构与算法中提到了很多的算法,如折半查找,快速查找,归并排序等等,熟悉这些算法不能说让我们计算能力提升,但其中的逻辑思维与解决问题的方式却值得我们去探究。 本来打算把一些常用的算法整合起来一次发完,但是代码量有点大,我大概浏览都头昏,所以决定分两部分分享给大家。关于这些算法的逻辑我基本都标有注释,话不多说上代码~ 头文件.h #pragma once #include<iostream> using namespace std; cl
2020-06-01 20:37:08 266
原创 二叉树
数据结构中的树结构可谓是相当重要的,运用的相当广泛。树的存储方式几乎是没有缺点!树的优点就数组与链表的优点结合(插入删除快,查找快(折半)什么的),树几乎是包含了数据结构一半的知识要点,是非常重要的一个知识,要是别人问你树,你不知道?那你数据结构就相当于没学。 树的特性如下(简解): 树从一个根开始想下延伸(root) 树是链式存储的,但却不影响他的查找速度(折半查找) 树的遍历分四种(前中后层,代码有详解) 关于树有很多种,如普通树: 只是需要遍历其他什么都不做,二叉树: 主要可以折半查找。又分左右分支
2020-05-31 13:17:07 199
原创 链式栈
前面已经提到过顺序栈了,这里简单的说一下链式栈,栈的原理是先进后出,而链式栈不过是以链表的方式实现,没有什么新鲜感 。(把握指针就行) 操作就不再讲解了,直接上代码~ 头文件.h #pragma once #include<iostream> using namespace std; class LinkNode//节点 { friend class LinkStack; 友元 private: Lin
2020-05-31 12:02:50 569
原创 链表
简单讲解一下: 链表又称链式存储不像数组空间是连续的,数组是每插入或删除都要移动原有数据的位置补齐连接,以至于数组可以达到遍历输出。链表是线性存储,每次插入依靠指针与数据域。指针指向数据域达到连接的效果(具体就不讲解了) 链表分很多种,比如循环链表,双向链表。想要搞出链表其实不难,但只要是关于链式存储的都要依赖指针,所以有时其中的逻辑会很绕脑! 这里讲解一下单链表的操作: 定义指针域类(其中包含节点数据,下一指针) 定义链表域类(包含插入,删除,打印输出等) 话不多说上代码一看就明白~ 头文件.h
2020-05-30 21:13:24 206
原创 链式队列
链式队列其实要比顺序队列简单很多,只要把握好指针就行(指针几乎贯穿整个编程语言,即使是一些资深程序员有时都难以把度。比如阿编哈哈),话不多说上代码了~ 头文件.h #pragma once #include<iostream> using namespace std; class Queue { public: Queue(); ~Queue(); bool IsEmpty() const; //判断是否为空 const
2020-05-30 15:38:22 216
原创 顺序队列
数据结构之顺序队列 数据结构可谓是每个学习编程语言同志们的必经之路。阿编在这里也不像其他博主们一一讲解基础了,很多知识点看多了不写也没什么卵用,所以在这里直接代码安排(奥利给) 前提要点: 队列分数组形态与链表形态,这里先安排数组的(也就是顺序队列)。主要操作有1查看队首数据(Front)2查看队尾数据(brck)3入队与出队(push与pop)。大多同志都了解,所以代码来了~ // 头文件.h #pragma once #include<iostream> using namespac
2020-05-30 14:22:56 219
原创 多线程与多进程
Linux基础-多(进线)程 这里暂时只讲一下搭建流程,因为一提到线程或进程牵扯了很多的知识点,必须依靠自己掌握。 多进程并发服务器: server.cpp(服务器端,客服端没有任何变化) 1 Socket() 创建 监听套接字 lfd 2 Bind() 绑定地址struct sockaddr_in addr; 3 Listen() 设置监听上限 4 while(1) 循环不必多说都懂(多次操作)(哎,还是说了) { cfd = Accpet(); 接收客户端连接请求 pid =
2020-05-30 12:45:10 127
原创 网络通信时序(1)
Linux基础-通讯时序 三次握手: 主动发起连接请求端,发送 SYN 标志位,请求建立连接。携带序号 号,数据字节数(0)及滑动窗口大小。 被动接受连接请求端,发送 ACK 标志位,同时携带 SYN 请求标志位,携带数序号,确认序号,数据字节数(0)及滑动窗口大小。 主动发起连接请求端,发送 ACK 标志位,应答服务器连接请求,携带确认序号 四次挥手: 主动关闭连接请求端,发送 FIN 标志位。 --------客户端或服务器首先请求
2020-05-30 12:14:26 372
原创 关于socket编程
Linux基础篇-socket 前提要知: socket是TCP/IP网络的API,用来编写TCP/IP网络上的应用程式socket的用于网络进程之间的通信,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了。 网络中的进程通信就可以利用这个三元组与其它进程进行交互。socket的工作原理基于客户端/服务器模式,服务器在网络一端进行监听,客户端则进行连接,建立连接后即可进行数据交互 知识
2020-05-30 12:05:18 181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人