二叉搜索树:1.每个节点都有一个关键码(key)作为搜索依据,关键码互不相同。2.左子树的所有关键码都小于根节点的关键码。3.右子树的所有关键码都大于根节点的关键码。4.左右子树都是二叉搜索树。删除key:左为空,右为空,左右都不空1)左为空:cur的右树链到父节点2)右为空:cur的左树链到父节点3)左右都不空:找右树最左节点或左树最右节点,将找到的节点与cur交换后删除它。二叉搜索树的增、删、
Linux中的进程调度算法分类如下:一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法(FCFS) 先来先服务(First Come First Service,FCFS)调度算法是一种最简单的、不可抢占式的调度算法,既可用于作业调度,也可用于进程调度。该算法按照进程进入就绪队列的先后顺序选择可以占用处理器的进程。每次调度都是从后备作业队
Linux的编辑器--vim vim是多模式的编辑器(命令模式、插入模式、底行模式)。今天我们来学习一些如何配置vim? 可以自己用命令来配置,也可以从网上下载相关文件来配置。1.复制文件.vimrc 下载vimrc.zip,解压后的文件为.vimrc,将其放到当前用户avril的目录下。 链接:http://
线索化二叉树: 利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息。LChild(左孩子)Ltag(左线索标志)DataRtag(右线索标志)RChild(右孩子)中序(左根右):前序(根左右):注意:因为++index返回对象 index++返回临时变量 传引用时只能用++index。前序、中序的线索化及遍历具体实现如下: #pragma o
二叉树:每个节点最多两个孩子节点。二叉树的结构: struct TreeNode {  
linux中的find命令及相关实例: find指令是个使用频率比较高的命令。常用于在系统特定目录下,查找具有某种特征的文件。一.find指令的一般格式: find [pathname] -options [-print / -ecex / -ok...
单链表的面试题:1删除一个无头单链表的非尾节点2在无头单链表的一个非头节点前插入一个节点3查找单链表的中间节点,要求只能遍历一次链表4查找单链表的倒数第k个节点,要求只能遍历一次链表5从尾到头打印单链表6逆置 / 反转单链表存储结构:typedef int DataType;typedef struct SListNode{ DataType _data; struct SListNode* &n
编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#include <stdio.h> #include <assert.h> int my_strlen(const char *str)&
模拟实现printf功能输出如下形式,'d'输出整形,'c'输出字符型,'s'输出字符串,其他输出自身形式 my_printf("dc\ts\ndc\ndc\ts!",1, 'b',"zhangweina",2, 'i', 3,'t', "welcome to you");可变参数列表的一些小知识://宏 stdard.h//va_list 声明一个类型//va_start
大家一起来玩一个小游戏吧! srand((unsigned int)time(NULL));//设置随时间变化的随机数ret=rand()%100; //产生0~100随机数 添加 #include<time.h>改变100的值,使其产生0~其他的随机数.自定义游戏菜单menu.#include<stdio.h> #include<st
注意:计算时1要用double类型即1.0。奇数偶数分开计算,再合并。#include<stdio.h> int main() { int i; double sum=0,sum1=0,sum2=0; for(i = 1;i <= 99;i+=2) { sum1=sum1+1.0/i;
分别输入两组数,编写swap函数交换两数组内容,再在主函数中调用swap函数达到函数交换的目的#include<stdio.h> void swap(int arr1[],int arr2[],int len) { int i, temp; for(
先以1000以内整数为例 #include<stdio.h> int main() { int num=0; int a,b,c; printf("请输入1000以内的数字:>");  
如何将输入的数转化为二进制,统计其中 1 的个数。1.将十进制转换为二进制是将数字不断除2取余,在这里我将余数为1的情况进行累加,可以得出结果。#include<stdio.h> int main() { int num;  
用数组输入十个整数,应用for循环对数组中元素,从前到后两两相比较找出最大值。#include<stdio.h> int main() { int a[10]; int n,i,maxa; n=sizeof(a)/sizeof(a[0]); printf("请输入10个整数\n"); for(i=0;i<
如何不创建临时变量,来交换两个整形变量的值异或运算 #include<stdio.h> int main() { int num1=12,num2=24; printf("交换前的变量值"); printf("%d,%d",num1,n
熟话说“四年一润,百年不润,四百年再润”。那么我们来用编程查找闰年吧!#include<stdio.h> int main() { int year,leap=1; printf("\t\t\t判断0~3000之间的闰年\n"); printf("请输入0~3
素数即就是该数除了1和它本身以外不再有其他的因数,否则称为合数。 找寻100~200之间的素数的算法:让a被2~√a除,若a不能被整除,则a是素数。#include<stdio.h> #include<math.h> int main() { &
我将博客搬家到了CSDN上,博客名为zweina111,欢迎大家光临
单链表:是一种线性表,每个节点里面存储着下一个节点的指针,把存储的数据元素连起来。 本文中应用了C++的引用来传参数。存储结构:typedef int DataType; typedef struct SListNode { DataType _data; struct SList
动态顺序表: 容量不够时 自动增容(静态顺序表的改进) 动态顺序表的结构:typedef int DataType;typedef struct SeqList{ DataType* _array; //指向数据块的指针 size_t _size; /
顺序表:一段地址连续的存储单元依次存储数据元素的线性结构。静态存储的结构:#define MAX_SIZE 5 typedef int DataType; typedef struct SeqList { DataType array[MAX_SIZE]; size_t size; }SeqList;///////
我们熟悉的乘法口诀表,可以用简单的c语言展现哦!#include<stdio.h> int main() { int i,j,k; printf("\t\t\tThis is the 9*9 table.\n"); for(i=1;
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号