自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 求两链表相交的第一个公共节点

Node* is_y_list(Node *h1,Node *h2){ int len1 = listLength(h1); //求链表长度 int len2 = listLength(h2); //对齐两个链表 if(len1 > len2) { for(int i=0;i<len1-len2;i++) h1=h1->next; } else {

2021-07-17 15:34:59 69

原创 合并两个有序的单链表,合并后依然保持有序

void merge_list(List* list1,List* list2,List* list3){ Node* node = list1->head->next; Node* node1 = list2->head->next; Node* node2 = list3->head; while(NULL != node->next && NULL != node1->next) //有一个到尾就结束循环

2021-07-17 15:34:23 146

原创 找出环形链表的入口

Node* find_in_list(Node* head){ if(head==NULL||head->next==NULL) return NULL; Node* quick = head->next; Node* slow = head->next; while(slow!=quick) //找到第一次相遇的结点 { quick=quick->next->next; slow=slow->ne

2021-07-17 15:33:34 72

原创 判断链表中是否有环

bool judge_list(Node* head){ Node* p1 = head; //慢指针 Node* p2 = head; //快指针 while(true) //快慢指针相遇就返回true { if(p2->next->next==NULL) return false; //到末尾就代表无环 p2=p2->next->next; p1=p1->next; if(p1

2021-07-17 15:32:55 51

原创 找出链表的倒数第n个节点

Node* find_last_list(Node* head,int n){ Node* p1 = head; //前结点指针 Node* p2 = head; //后结点指针 while(n--) p2=p2->next; //后结点指针先走n步 while(p2->next!=NULL) //前指针和后指针一起走 { p1=p1->next; p2=p2->next; } return p

2021-07-17 15:32:11 74

原创 单链表逆序

void trans_list(Node *head){ Node *p1=NULL;//定义一个指针用来保存链表节点指向的节点 Node *p3=head->next;//保存后继节点 while(p3) { Node *p2=p3; //p2是备份当前节点 p3=p3->next; //更新为后继节点 p2->next=p1; //当前节点指向前一个节点,指向反向

2021-07-17 15:31:30 46

原创 Linux内核链表

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>//Linux内核链表// 遍历#define list_for_each(n,head) \ for(n=head->next; n!=head; n=n->next)// 计算结构体成员所处的结构中的地址编号// type 结构类型 mem结构成员名#define offset(type,mem) ((int)(&am

2021-07-17 15:26:56 52

原创 双向循环链表

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define TYPE int// 设计双向链表节点typedef struct Node{ struct Node* prev; TYPE data; struct Node* next;}Node;// 创建节点Node* create_node(TYPE data){ Node* node = malloc(sizeof

2021-07-17 15:25:14 46

原创 C语言关键字

数据类型相关内建类型:void、char、short、int、long、float、double 自建类型:struct、union、enum、sizeof 类型限定符:auto、const、static、volatile、register、extern、typedef、signed、 unsigned 流程控制相关分支:if、else、switch、case、def

2021-07-16 15:57:53 47

原创 GitHub上传项目

1、创建仓库2、安装gitsudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-devsudo apt-get install git3、配置个人信息git config --global user.name "用户名" //用户名只是说明谁连接git config --global user.email "邮箱" //最好连接的邮箱4、生成密钥ssh-keygen -t

2021-07-16 15:53:44 69

原创 网络编程-Socket通信

Local A#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/un.h>int main(int argc,const char* argv[]){ // 创建套接字 int sock

2021-07-16 15:32:50 103

原创 数据结构与算法-排序(C语言)

#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define LEN 10#define swap(a,b) {typeof(a) t=(a);(a)=(b);(b)=t;}void show_arr(int* arr,size_t len){ for(int i=0; i<len; printf("%02d ",arr[i++])); printf("\n");}type

2021-07-16 15:20:42 72

原创 通用链表-C语言

list.h#ifndef LIST_H#define LIST_H#include <stdbool.h>// 类型重定义函数指针typedef int (*Compar)(const void*,const void*);// 链表节点typedef struct Node{ void* ptr; //数据域 struct Node* prev; struct Node* next;}Node;// 通用链表结构typedef struct List{

2021-07-16 15:17:59 126

原创 C++学习(五)

进制转换:为什么要使用二进制、八进制、十六进制: 因为现在的CPU只能识别高低两种电流,只能对二进制数据进行计算 二进制数据虽然能够直接被CPU识别计算,但是不方便书写、记录,把二进制转换成八进制是为了方便记录在文档中 随着CPU的位数不断发展,由早期8位逐渐发展到现在64位,因此八进制也逐渐不能满足需求了,所以才出现了十六进制十进制转二进制: 求余法:用2对数据求余,然后再对商继续求余,直到商为0结束,过程中产生的余数就是该数据的二进制(逆序)

2021-05-10 17:22:37 92 1

原创 VIM文本编辑器的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、vim的基本用法二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言

2021-04-20 19:50:08 114

原创 C++学习(四)

数组:什么是数组:变量的组合,是一种批量定义变量的方式定义:类型 数组名[数量]; int arr[5]; 使用:数组名[下标]; 下标:从零开始,范围:0~数量-1 遍历: 与for循环配合,使用循环变量i作为数组的下标初始化:类型 数组名[数量] = {1,2,3,4,5...}; 1、数组与普通变量一样默认值是随机的,为了安全起见要对它进行初始化 2、这种初始化的方式只能在定义语句中使用,而且只能逐个赋值,不能整体赋值 3

2021-04-20 19:46:20 46

原创 C++学习(三)

循环for循环语句:循环就是让一段代码反复执行,达到你想要的效果for是一一种比较灵活且危险(与其他循环语句相比)的一种循环一般使用一个变量来引导它的运行,这个变量叫做循环变量i,indexfor([1];[2];[3]){ [4]} 1、给循环变量赋初值,C99标准可以定义循环变量-std=gnu99 在此处定义的循环变量,只能在for循环内使用2、判断循环变量的值是否到达边界4、被反复执行的代码,也叫做循环体3、改变循环变量,防止死循环,一般对循环变量进行自加或自

2021-04-20 19:41:35 124

原创 C++学习(二)

系统其他相关命令:tar 压缩/解压文件 -zcvf 包名 要压缩的目录 创建压缩包 -zxvf 包名 解压缩chmod 修改文件权限 chmod mmm m=r(4)+w(2)+x(1) [自己、同组、其它] rwx r-x r-x 755 644 chmod +/-rwx 文件名 所有用户统一修改权限

2021-04-09 20:50:14 76

原创 C++学习(一)

C++学习(一)开发环境:VirtualBox 虚拟机工具 免费开源Ubuntu 12.04 LTSvim 代码编辑器gcc 编译器Linux系统介绍:BCPL->newB->C->Unix->Minix->LinuxLinux管理硬盘的能力非常强,所以我们看到的只有一个分区系统命令:bin 存放系统命令 dev 设备文件(一切皆文件)media 多媒体目录 u盘、光驱、挂载的目录proc 记录程序运行过程中

2021-04-06 19:58:31 51

C++基础入门讲义md

非常详尽的C++入门讲义,很适合初学者

2021-07-16

常见的Linux系统信号.md.mht

常见的Linux系统信号.md.mht

2021-07-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除