自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 C++AVL树

查找元素相当 于在顺序表中搜索元素,效率低下**。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年 发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之 差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。 一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:它的...

2019-12-08 21:41:31 165

原创 C++二叉搜索树

概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树二叉搜索树的查找过程如图:主体框架代码:#include <vector>#include <stack>...

2019-12-04 21:33:30 269

原创 C语言模拟实现字符串/内存函数

1.模拟实现strlen#include <stdio.h>#include <string.h>size_t Strlen(const char* str){ size_t len = 0; for(; str[len] != 0; ++len){ //循环体中不需要其他代码了 } return len;}in...

2019-11-22 00:43:44 185

原创 C语言实现插入/希尔/选择/堆/冒泡/快速/归并/非比较排序(8种)

//包含头文件#include "Stack.h"#include <stdio.h>#include <assert.h>#include <time.h>#include <stdlib.h>#include <malloc.h>#include <string.h>一.插入排序:每一次从待排序的数据...

2019-10-28 22:43:06 275

原创 C-数据结构 模拟实现队列

Queue.h#ifndef C_HOMEWORK_QUEUE_H#define C_HOMEWORK_QUEUE_H#endif //C_HOMEWORK_QUEUE_H#include "BinaryTree.h"#include <stdio.h>#include <assert.h>#include <malloc.h>typede...

2019-10-09 12:03:09 164

原创 C-数据结构 模拟实现栈

Stack.h#ifndef C_HOMEWORK_STACK_H#define C_HOMEWORK_STACK_H#endif //C_HOMEWORK_STACK_H#include <stdio.h>#include <assert.h>#include <malloc.h>#define STACK_INIT_SIZE 10ty...

2019-10-09 12:00:38 140

原创 C-数据结构 模拟实现双向链表

List.h#ifndef C_HOMEWORK_LIST_H#define C_HOMEWORK_LIST_H#endif //C_HOMEWORK_LIST_H#include <stdio.h>#include <assert.h>#include <malloc.h>typedef int DataType;typedef str...

2019-10-09 11:58:31 147

原创 C-数据结构 模拟实现单链表

SingleList.h#ifndef C_HOMEWORK_SINGLELIST_H#define C_HOMEWORK_SINGLELIST_H#endif //C_HOMEWORK_SINGLELIST_H#include <stdio.h>#include <assert.h>#include <malloc.h>typedef in...

2019-10-09 11:56:54 140

原创 C-数据结构 模拟实现顺序表

用C语言模拟实现顺序表首先SeqList.h#ifndef C_HOMEWORK_SEQLIST_H#define C_HOMEWORK_SEQLIST_H#endif //C_HOMEWORK_SEQLIST_H#include <stdio.h>#include <stdlib.h>#include <assert.h>#include...

2019-10-09 11:54:14 112

原创 C语言:理解指针

一级指针指针就是个变量,用来存放地址,地址唯一标识一块内存空间。指针的大小是固定的4/8个字节(32位平台/64位平台)。指针是有类型,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。二级指针二级指针本质上是一个一级指针 , 只不过这个一级指针指向的内容也是一个一级指针指针和数组指针和数组在C语言中经常被混用,但二者有本质区别:数组是自带内存空间的,往往是把原...

2019-08-29 18:03:00 295

原创 C语言:动态内存文件储存通讯录

实现一个通讯录;通讯录可以用来存储人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人保存联系人到文件并退出程序加载联系人在第一次写通讯录时 , 设置了人数上限一千 , 并且不可保存 , 程序退出后添加的联系人就失效了 , 但是搭建...

2019-08-29 17:54:59 251

原创 C语言练习15

1.一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。思路:这道题可以利用异或运算符来实现,先用一张图表示做题核心思路两个相同的数进行异或得到的结果为0,而题目要求找出两个单独存在的数,那意味着将所有数异或得到的结果不会为0.但是两个数不相同那么一定有不同的比特位,所有我们可以找出异或所有数后的num的第一个为1的比特位,以这个数位(pos)标...

2019-08-22 11:55:35 185

原创 C语言操作符

操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成1.算术操作符+ - * / % 即加,减,乘,除,取模五个操作除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法...

2019-08-05 00:31:43 179

原创 C语言:三子棋

三子棋本该在扫雷之前完成,但是做的时候觉得扫雷比较炫酷就先完成了扫雷,然后发现三子棋和扫雷实现过程还是有一定不同的.与扫雷一样,三子棋也有几个步骤.1.创建二维数组作为棋盘,三子棋只有九个格子所以创建3*3的棋盘就好了.2.初始化棋盘,将棋盘全部初始化为’ '.3.玩家输入坐标落子,这一步当中要判断坐标是否越界以及想要落子的坐标是否以及有子.4.判断玩家落子后游戏是否结束.5.电脑落子...

2019-07-28 00:35:14 170

原创 C语言练习11

写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int value) { // 返回 1的位数 }这道题有两种思路:第一种思路是求模然后不断位移来判断二进制为1的个数,但是这个方法如果int前不加unsigned就没有办法求负数的二进制当中1的个数,因为在C语言中的右...

2019-07-28 00:23:06 153

原创 C语言练习14

1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路:获取要旋转的数字k,先将整个字符串倒置,然后翻转后k个字符的顺序,再翻转剩下的字符.这样就可以得到字符串左旋k个字符的结果,并且保证顺序不出错代码实现:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>vo...

2019-07-27 23:16:01 143

原创 C语言练习13

1.调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路:按顺序取一组两个数字分别求对2的余数,如果前一个数余数为0且后一个数余数不为零则交换两者的位置.代码实现:#include <stdio.h>int main(){ int a[10]...

2019-07-27 19:05:43 163

原创 C语言:扫雷

这是一篇迟到了一个月的扫雷博客.扫雷这个游戏要实现并不会很困难,我们来整理一下完整的思路:1.搭建棋盘:图中用蓝色部分画出来的是我们进行游戏要使用的棋盘,周围一圈红色的是我们在实现关键功能时做的保险,这个功能会在后面提到.我们的游戏选择99的棋盘,那么在创建时就要创建一个(9+2)(9+2)即1111的棋盘.这里定义四个宏来分别表示外棋盘和游戏棋盘.2.棋盘初始化:扫雷游戏每进行一步棋盘...

2019-07-27 17:15:34 237

原创 C语言练习12

1.编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001翻转后:(2550136832) 10011000000000000000000000000000 程序...

2019-07-21 00:19:37 229

原创 C语言练习11

写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}思路一:求模,不断移位判断数字奇偶来确定二进制代码中1的个数,但是这种方式如果不使用unsigned就无法判定负数二进制代码中的1的个数,因为负数的符号位是1,会被自动判断为一个很大的数...

2019-07-16 14:46:57 213

原创 C语言练习10

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。思路:生成每个选手的所有名次可能性,然后进行逻辑判断.每个选手都只说对一半,则说明每个选手的话都可以拆成两个判断,其中只有一句为真,将...

2019-07-12 12:06:33 206

原创 C语言:冒泡排序

define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void Swap(int* x, int* y){ int tmp = *x; *x = *y; *y = tmp;}void BubbleSoort(int* arr, int size){//每次找最小的方式,[0,...

2019-07-03 23:05:18 96

原创 C语言练习7

1.递归和非递归分别实现求第n个斐波那契数。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int fibonacci(int n){ if(n==1 || n==2){ return 1; } return fibonacci(n - 1) + fibonacc...

2019-07-02 15:05:54 125

原创 C语言:练习6

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void mul(int n){ for (int a = 1; a <= n; a += 1){ ...

2019-06-29 22:45:04 128

原创 C语言:练习5

1.完成猜数字游戏。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<Windows.h>#include<string.h>#include<time.h>int Menu(){ printf("===========...

2019-06-27 12:42:36 121

原创 C语言:练习2

给定两个整形变量的值,将两个值的内容进行交换。#include<stdio.h>#include<stdlib.h>int main(){ int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int arr2[] = { 9, 10, 11, 12, 13, 14, 15, 16 }; int len = sizeof(ar...

2019-06-26 23:21:07 186

原创 C语言:编写代码模拟至多输入三次密码的场景

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ char password[] = "123456";//设置一个密码 int i = 0; for (; i < 3; i += 1){ printf("请输入密码:\n"); char i...

2019-06-26 00:12:35 401

原创 C语言:二分查找/折半查找

#include<stdio.h>#include<stdlib.h>int main(){ int num = 8; int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int size = sizeof(arr) / sizeof(arr[0]); int left = 0; int right = size - ...

2019-06-25 23:15:03 379

原创 C语言:打印100-200之间的素数

先来一种最基本的,第一次写这个代码的结果就是这个#include<stdio.h>#include<stdlib.h>int main(){ int pri; int n; for (pri = 100; pri <= 200; pri += 1){ for (n = 2; n < pri; n++){//n不能等于pri if (pr...

2019-06-23 23:28:53 247

原创 C语言:在屏幕上输出图案

在屏幕上输出以下图案:*行数星数112335475961171381199107115123131观察行数与星数,设行数为n,星数为s,前七行递增满足:s=2n-1,后六行递减满足s=11-2*(n-7)#include<stdio.h...

2019-06-22 23:49:57 1623

原创 C语言:求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int Sn;int a;printf("请输入一个数:");scanf("%d", &a);//输入一个数值啊aSn ...

2019-06-22 22:57:20 357

原创 C语言:求出0~999之间的所有“水仙花数”并输出

#include<stdio.h>int main(){ int a; int b; int c; int num; printf("水仙花数分别为:\n"); for (num = 100; num < 1000; num += 1){ //水仙花数是三位数,所以从100开始 c = num / 100;//百位 b = (num - 100 * c)...

2019-06-22 22:42:06 415

空空如也

空空如也

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

TA关注的人

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