- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 定点数表示与运算
定点数表示与运算定点数的表示无符号数与有符号数的表示机器数的定点表示原码、补码、反码、移码定点数的运算定点数的移位运算原码定点数的加减法运算定点数的表示无符号数与有符号数的表示1.无符号数指整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。如:机器字长为n位,则数的表示范围为0~2n-1。2.有符号数0表示正,1表示负。通常约定二进制数的最高位为符号位。有符号数的机器表示有原码、补码、反码、移码。机器数的定点表示1.定点小数定点小数是纯小数,约定小数点位置在符号位之后
2020-07-17 12:51:36
3205
原创 简易通讯录管理系统C++
在VS2019运行成功://在main函数里调用封装好的函数#include<iostream>#include<string>#define MAXSIZE 5//假设通讯录为5个人,也可以改为1000人using namespace std;//设计联系人结构体struct Person{ //姓名 string m_Name; //性别:可以用int m_Sex,容易判断性别是否输错 string m_Sex; //年龄 int m_Age; /
2020-07-14 20:10:51
397
原创 寻找线索二叉树的前驱后继,以及遍历线索二叉树
寻找线索二叉树的前驱后继,以及遍历线索二叉树中序线索二叉树寻找前驱后继及遍历寻找中序序列的后继结点及正向遍历寻找中序遍历的前驱结点及逆向遍历先序线索二叉树寻找后继结点及前驱结点寻找先序序列的后继结点寻找先序序列的前驱结点后序线索二叉树寻找后继结点及前驱结点寻找后序序列的后继结点寻找后序序列的前驱结点中序线索二叉树寻找前驱后继及遍历定义线索二叉树:typedef struct ThreadNode{ int data; struct ThreadNode *lchild, *rchil
2020-07-07 18:11:45
1424
3
原创 二叉树的线索化
为什么要线索化二叉树?:传统的二叉树的链式存储,只能体现一种父子关系,不能直接得到结点在遍历中的前驱结点和后继结点,而且一般仅能从最上方往下找,很不方便,不能从任意结点开始遍历寻找前驱后继。前文中提过二叉树链式存储有n+1个空链域,所以可以充分利用这n+1个空指针构造出线索二叉树使得我们更方便的遍历二叉树。//不线索化找前驱typedef struct BTNode{ int data; struct BTNode *lchild,*rchild;}BTNode,*BTree;
2020-07-07 15:56:57
440
原创 BCD码、奇偶校验码、海明(汉明)码、CRC码
BCD码、奇偶校验码、海明(汉明)码、CRC码一、BCD码常用BCD码:1.8421码。2.余三码。3.2421码。二、校验码1.奇偶校验码2.海明(汉明)码3.CRC码一、BCD码 二进制按权展开相加转化为十进制或者十进制乘基取整除基取余转化为二进制仍然比较麻烦,我们需要更快的转化方式,所以有了BCD码二进制与十进制一一对应来转化。但是由于四位二进制数可以组合出十六种代码,而十进制为0~9,所以必有6种状态为冗余状态。常用BCD码:1.8421码。 是一种有权码。权值从高到低依次为8、4
2020-07-06 12:28:40
5029
原创 二叉树的先序遍历、后序遍历、中序遍历、层次遍历(C++递归)
//链式存储实现二叉树typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//以打印操作为例void visit(BiTNode *p){ std::cout<<p->data;}//先序遍历:/*1.访问根节点2.先序遍历左子树3.先序遍历右子树*/void PreOrder(BiTree T){ if(T)
2020-07-05 15:57:11
574
原创 二叉树的顺序存储与链式存储(C++)
//二叉树顺序存储方式:静态数组。#define MAXSIZE 100struct TreeNode{ //ElemType value; int value; bool isEmpty;//表示结点是否为空};//定义树TreeNode t[MAXSIZE];//初始化void InitTreeNode(TreeNode T[]){ for(int i=0;i<MAXSIZE;i++)//TreeNode T[MAXSIZE];i<T.l.
2020-07-03 19:46:44
937
原创 串基本操作:求子串、比较操作、模式匹配:暴力遍历、KMP算法;及next、nextval数组求法
#include<iostream>#define MAXSIZE 255//舍弃ch[0],使位序=数组下标。使用变量length表示长度。//定义串:使用静态数组方法。typedef struct { char ch[MAXSIZE];//预定义最大串长尾255 int length;}SString;//求子串:用Sub返回串S的第pos个字符起长度为len的子串bool SubString(SString &Sub,SString S,int p
2020-07-02 14:46:06
1341
3
原创 24.两两交换链表中的节点C++哨兵节点迭代
题目解法:哨兵节点迭代在链表之前加上一个哨兵节点,这样对链表的头节点的操作就统一了起来,然后可以用双指针,当然用三个指针也可以,我第一次想的就是三个指针,但是觉得三个指针加上哨兵节点太多了,而且节点数是两个的时候第三个指针就是空的,就换了双指针。第一次以为只有偶数个节点,因为示例里只有偶数个,写了之后报错,因为可以有奇数个节点,然后看了返回值,在循环加个判断条件head->next!=NULL就可以了。/** * Definition for singly-linked list. *
2020-06-28 20:05:22
352
原创 快慢指针找链表中点
一直遍历了找中点,遇见了几次快慢指针找中点但是也没记住,记性不好就写着。ListNode *fast,*slow;fast=slow=head;while(fast&&fast->next){ slow=slow->next; fast=fast->next->next;}//slow最终所指即为中点...
2020-06-27 20:05:53
411
原创 203.移除链表元素C++
题目解法一:暴力遍历/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* removeElements(ListNode* head, int val) {
2020-06-20 18:05:25
305
原创 141.环形链表(C++)哈希表以及有趣的快慢指针
题目解法一:哈希表联想到上篇文章相交链表的解法,可以用哈希表存放指针访问过的节点,当再次访问已经访问过的节点时表示是环形链表,返回true退出。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {publ
2020-06-20 16:55:14
230
原创 C++单链表操作(增删查改)
#include<iostream>using namespace std;//单链表typedef struct LNode{ int data;//不加*号 struct LNode *next;//不是int *next,而是定义一个LNode*类型的指针域;}LNode,*LinkList;//头插法LinkList List_HeadInsert(LinkList &L){ LNode *s; int x; L=(Li
2020-06-18 20:20:06
675
原创 160.相交链表(浪漫双指针C++)
题目解法一 浪漫双指针(错的人迟早会走散,而对的人迟早会相逢)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(List
2020-06-18 20:02:18
205
1
原创 21. 合并两个有序链表C++
迭代:新建一个头结点prehead。pre指针指向头节点prehead,然后将l1、l2中小的数加在pre指针后,知道l1、l2中有一个为空。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), nex.
2020-06-16 11:11:21
183
原创 VS2019 ASP.NET C#webservice接口创建、发布、部署到IIS及调用
文章目录Webservice接口创建1.创建ASP.NET Web应用程序2.添加web服务3.添加成功后,写好自己想要的接口,下面以四则运算为例4.发布5.在IIS上部署WebClient端1.新创建Winform窗口程序2.添加引用3.设计好UI界面4.双击计算按钮运行效果Webservice接口创建1.创建ASP.NET Web应用程序:2.添加web服务:右键项目-添加-web服务3.添加成功后,写好自己想要的接口,下面以四则运算为例:必须在函数上面添上一行代码[WebMet
2020-06-14 21:09:14
12238
4
转载 我啥时候才能读完这些书,成为一个终身游戏程序员大佬?
转自:Milo Yip大神 Github miloyip/game-programmer原文地址:https://zhuanlan.zhihu.com/p/24424967检视/下载中文版 SVG / PDF
2020-06-01 12:15:22
147
原创 Windows环境C++ socket编程(附源码)
基础函数介绍:https://www.jianshu.com/p/3b233facd6bbC++ socket编程:IDE:VS2019;我建立两个工程,一个作为服务器端,一个作为客户端,debug之后,运行连接。先搞清上述基本函数之后再编写十分简单。源码文件在最后服务器端:// server.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//```cpp#include<stdio.h>#include<string.h>#in
2020-05-31 21:50:09
780
原创 软件体系结构层次风格
概念层次系统组织成一个层次结构,每一层为上层服务(被上层调用),并作为下层客户(调用下层)。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层时部分不透明的),绝大部分是透明的,不需要知道底层是怎么来实现的。如:手机及其App,App不需考虑通讯中的物理层是通过什么连进来的。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个增
2020-05-26 14:44:59
2794
原创 基于事件的隐式调用风格小结
基于事件的隐式调用风格的思想时构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,发生的时候,系统自动调用这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中的过程调用显式调用当一个类或模块调用另一个类或模块时,必须知道另一个模块函数的名称、参数表才能调用。而且两边函数编程语言必须相同。隐式调用类/模块不再直接调用,而是通过一个事件池,先发送一个事件到事件池,甲的op1注册在ev1中,乙的op2也注册在ev1中,当
2020-05-25 16:25:03
3099
原创 14.最长公共前缀
解法一:暴力遍历可以直接S+=len[ j ];但是不能S[ j ]=len[ j ],这样有五个存储空间;解法二:水平扫描法可以用while循环
2020-05-25 13:04:17
142
原创 13.罗马数字转整数
原本想着数组存放7个罗马数字,但是又想到I=1不可能用a[1000]=M来表示,这样数组就太大了,转而想哈希表,HasMap、unordered_map,无序map。1.注意i++、++i、i+1、1+i区别;2.insert插入类型与map定义类型对应,因而使用单引号。3.unordered_map是基于Hash的结构,查询速度可以认为是O(1);4.map是基于红黑树的结构,查询速度为O(logn)。但是unordered_map不一定比map快。...
2020-05-25 12:58:12
138
原创 09回文数
题目如下:解法一:转换为string字符串将x转换为String字符串,之后使用双指针,一边遍历一边比较;(C++ int转化为String为:string to_string (x)),后面直接比较left++和right–是我没想到的。解法二:使用栈,压入一半数字,然后比较使用栈去比较,但是我写的稍微繁杂了点,不如题解用y<x这个特征来得简单(int y=0截图时不小心被删了)解法三:将x全部倒置...
2020-05-25 12:27:08
155
原创 C++归并排序小结
归并排序小结#include<iostream>using namespace std;//打印函数void printArray(int A[],int n){ for (int i = 0; i < n;++i) cout << A[i] << endl;}void MERGE(int A[],int p,int...
2019-10-26 15:29:06
205
原创 简单的网页设计(HTML篇1)
简单的网页设计(HTML篇1)本节成型网页框架:代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>给新月的一封回信</title> </head> <body> <div align...
2019-07-15 13:18:30
19338
1
原创 插入排序算法总结
插入排序算法(总结自《算法导论》)排序问题输入:n个数的一个序列<a1,a2,…,an>。输出:输入序列的一个排序<b1,b2,…,bn>,满足b1<b2<b3<…<bn。伪代码INSERTIONSORT(A){for j=1 to A.length key=A[ j ]; i=j-1 while(i>=0&&...
2019-07-13 10:30:32
175
高等数学题型、知识点复习思维导图.zip
2020-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人