- 博客(173)
- 资源 (10)
- 收藏
- 关注
原创 二叉搜索树(BST)
1. 二叉搜索树定义 二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree)。 二叉搜索树是具有有以下性质的二叉树: (1)若左子树不为空,则左子树上所有节点的值均小于或等于它的根节点的值。 (2)若右子树不为空,则右子树上所有节点的值均大于或等于它的根节点的值。 (3)左、右子树也分别为二叉搜索树。2. 二叉搜索树的相关操...
2019-03-16 23:22:58 351
原创 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。#include <iostream>#include <vector>#include <string.h>#include <stdlib.h>#include <algorithm> #...
2018-05-12 12:13:41 319
原创 C/C++逆序打印链表
C 逆序打印链表#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 128#define SIZE 10typedef struct ListNode* List;struct ListNode{ int val; struct ListNode* ...
2018-04-15 10:50:56 870
原创 C语言实现堆栈
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 128typedef int elementType;typedef struct{ elementType data[MAXSIZE]; int top;}Stack;int InitStack...
2018-04-14 23:27:39 3071 1
原创 字符串转换为整形
#include <stdio.h>#include <string.h>int OverFlow(int a, int b) { if (a > 0 && b > 0 && (a + b < 0) || a < 0 && b < 0 && (a +
2018-04-07 12:31:10 1146
原创 系统调用
系统调用:系统调用是用户空间访问内核空间的唯一手段,除了异常和陷入外,是内核唯一的合法入口提供这些接口主要是为了保证系统稳定可靠,避免应用程序的肆意妄为。。。系统调用出错时C库会把错误写入到errno全局变量,通过系统调用perror()函数,可以把该变量翻译成用户可以理解的错误字符串如果一个系统调用被删除,它所占用的系统调用号也不允许被回收利用,用sys_ni_s
2017-09-12 13:04:27 363
原创 进程调度
进程分为:I/O消耗型 和 处理器消耗型分配处理器使用比:Linux CFS(完全公平调度调度算法)调度器并没有直接分配时间片到进程,它是将处理器的使用比分配给进程,nice值作为权重将调整进程所使用的处理器时间比。调度器类:Linux调度器以模块方式提供(允许不同类型的进程可以有针对性的选择调度算法),这种模块化结构被称为调度器类,每个调度器都有一个优先级,它会按
2017-09-10 21:45:34 314
原创 Linux0.11内核解读(一):schedule
void schedule(void){ int i,next,c; struct task_struct ** p; //二级指针改变指针数组中的值,指针的间接赋值是指针的最大意义/* check alarm, wake up any interruptible tasks that have got a signal */ for(p = &LAST_TASK ; p > &F
2017-09-10 10:04:45 621
原创 fork进程
任务队列是一个双向循环链表产生进程机制:fork() + exec() //exec:负责读取可执行文件并将其载入地址空间中运行fork()使用写时拷贝实现, 只有在需要写入时,数据才会被复制,从而使各个进程拥有各自的拷贝fork()之后,子进程先执行(内核有意选择子进程先执行),因为一般子进程都会马上调用exec()函数,这样可以避免写时拷贝的额外开销,如果父
2017-09-09 18:43:48 376
原创 关于不能改变字符串常量值的理解
char *buf = "hello World!"; //关于字符串常量值不能修改理解, 因为字符串定义在全局常量区, //下面这句就是尝试改变字符串的值, 所以该语句错误 strcpy(buf, "q345w4565467"); //这句不是改变字符串的值, 是改变指针的指向,所以运行没有问题 buf = "q345w4565467";
2017-09-08 11:28:50 1537
原创 根据前序和中序重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#include #include #include #include #define N 100using namespace std;
2017-08-20 18:17:12 387
原创 ANR 总结
ANR主要有:1、KeyDispatchTimeout 按键触摸事件派发超时(5s)2、BroadcastTimeout 广播阻塞(10s) 尽量不要在onReceive中做耗时处理3、ServiceTimeout 服务超时(20s)超时原因:1、当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时完成,或者looper被某种原因阻塞了)2、
2017-08-17 13:15:10 306
原创 链表创建及反转
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXSIZE 128#define SIZE 10typedef struct ListNode* List;struct ListNode{ int val; struct ListNode* next;};...
2017-08-04 15:52:43 308
原创 打印菱形图案 / 猴子吃桃问题
习题4-9 打印菱形图案 (15分)本题要求编写程序,打印一个高度为nn的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数nn。输出格式:输出由nn行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * * * * * * * * *
2017-07-06 22:37:09 2681
原创 高空坠球
习题4-8 高空坠球 (20分)皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第nn次落地时,在空中一共经过多少距离?第nn次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和nn,均在长整型范围内。输出格式:在一行中顺序输出皮球第nn次落地时在空中经过的距离、以及第nn次反弹的
2017-07-06 21:28:02 14644 1
原创 最大公约数和最小公倍数
习题4-7 最大公约数和最小公倍数 (15分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(\le 1000≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044#include
2017-07-06 20:47:08 10950
原创 水仙花数
习题4-6 水仙花数 (20分)水仙花数是指一个NN位正整数(N\ge 3N≥3),它的每个位上的数字的NN次幂之和等于它本身。例如:153 = 1^3 + 5^3+ 3^3153=13+53+33。 本题要求编写程序,计算所有NN位水仙花数。输入格式:输入在一行中给出一个正整数NN(3\le N\le 73≤N≤7)。输出格式
2017-07-05 23:43:11 3693
原创 求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和
习题4-2 求幂级数展开的部分和 (20分)已知函数e^xex可以展开为幂级数1+x+x^2 /2! + x^3 /3! + \cdots + x^k /k! + \cdots1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数xx,要求利用此幂级数部分和求e^xex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
2017-07-05 22:06:24 12456 1
原创 统计素数并求和 / 求奇数和
练习4-11 统计素数并求和 (20分)本题要求统计给定整数MM和NN区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数MM和NN(1\le M\le N\le 5001≤M≤N≤500)。输出格式:在一行中顺序输出MM和NN区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143
2017-07-04 22:24:41 9223
原创 求给定精度的简单交错序列部分和 / 猜数字游戏 / 求e的近似值
练习4-3 求给定精度的简单交错序列部分和 (15分)本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样
2017-07-04 21:37:19 12175 1
原创 求组合数
练习2-18 求组合数 (15分)本题要求编写程序,根据公式C^{m}_{n} = \frac{n!}{m!(n-m)!}Cnm=m!(n−m)!n!算出从nn个不同元素中取出mm个元素(m\le nm≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正
2017-07-03 20:34:03 7201 2
原创 最长连续递增子序列
习题3.4 最长连续递增子序列 (20分)给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数nn(\le 10^5≤105);第2行给出nn个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长
2017-07-02 14:29:38 1997
转载 最大子列和问题
转载 http://blog.csdn.net/qq_30091945/article/details/59113550实例1.1 最大子列和问题 (20分)给定KK个整数组成的序列{ N_1N1, N_2N2, ..., N_KNK },“连续子列”被定义为{ N_iNi, N_{i+1}Ni+1, ..., N_jNj },其中
2017-07-01 22:08:52 273
原创 分离链接法的删除操作函数
习题5.11 分离链接法的删除操作函数 (20分)试实现分离链接法的删除操作函数。函数接口定义:bool Delete( HashTable H, ElementType Key );其中HashTable是分离链接散列表,定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementTy
2017-06-30 00:15:57 3499
原创 线性探测法的查找函数
习题5.10 线性探测法的查找函数 (20分)试实现线性探测法的查找函数。函数接口定义:Position Find( HashTable H, ElementType Key );其中HashTable是开放地址散列表,定义如下:#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */typedef int Elem
2017-06-27 22:55:50 5277 1
转载 二叉搜索树的常用操作
参考 :http://blog.csdn.net/wanmeiwushang/article/details/51921821#include #include typedef enum {false, true} bool;typedef int ElementType;typedef struct TNode* BinTree;struct TNode{ Ele
2017-06-25 23:15:09 278
原创 是否二叉搜索树
习题4.3 是否二叉搜索树 (25分)本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:bool IsBST ( BinTree T );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType
2017-06-25 12:30:54 5981 1
原创 另类堆栈
习题3.14 另类堆栈 (15分)在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?函数接口定义:bool Push( Stack S, ElementType X );ElementType Pop( Stack S );其中Stack结构定义如下:typedef
2017-06-23 21:55:43 2347
原创 另类循环队列---未实现题目要求,实现了双指针(Front、Rear)
习题3.12 另类循环队列 (20分)如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数。请编写算法实现队列的入队和出队操作。函数接口定义:bool AddQ( Queue Q, ElementType X );ElementType DeleteQ( Queue Q );其中Queue结构定义
2017-06-23 16:48:46 1794
原创 求链表的倒数第m个元素
习题3.5 求链表的倒数第m个元素 (20分)请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node {
2017-06-23 10:47:49 7667
原创 弹球距离
习题2.7 弹球距离 (15分)设有一个球从高度为hh米的地方落下,碰到地面后又弹到高度为原来pp倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为hh的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。函数接口定义:double dist( double h, double p );其中h是球的初始高度,p是球弹起高度与弹起
2017-06-23 10:24:23 13274
原创 递归求简单交错幂级数的部分和
习题2.6 递归求简单交错幂级数的部分和 (15分)本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x, n) = x - x^2 + x^3 - x^4 + \cdots + (-1)^{n-1}x^nf(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn函数接口定义:double fn( double x, i
2017-06-23 09:38:58 6687 2
原创 两个有序链表序列的合并
习题2.5 两个有序链表序列的合并 (15分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data
2017-06-23 00:05:28 706
原创 递增的整数序列链表的插入
习题2.4 递增的整数序列链表的插入 (15分)本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { E
2017-06-22 18:21:46 10100 4
原创 递增的整数序列链表的插入
习题2.4 递增的整数序列链表的插入 (15分)本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { E
2017-06-22 18:19:45 1521
原创 求奇数分之一序列前N项和
练习2-14 求奇数分之一序列前N项和 (15分)本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。输入样例:23输出样例:sum = 2.5495
2017-06-22 11:46:07 14997
原创 单链表结点删除
习题11-8 单链表结点删除 (20分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *de
2017-06-21 23:16:29 24791 1
原创 奇数值结点链表
习题11-7 奇数值结点链表 (20分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *
2017-06-21 23:03:12 12752 1
原创 查找子串
习题11-6 查找子串 (20分)本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include #define MAXS 30char *search(char *
2017-06-21 17:55:07 16269 2
原创 指定位置输出字符串
习题11-5 指定位置输出字符串 (20分)本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义:char *match( char *s, char ch1, char ch2 );函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。
2017-06-21 16:50:54 29056 11
安全函数strcpy_s、strncpy_s、snprintf_s、memcpy_s
2017-11-01
Linux0.11版本源码
2017-09-09
ZStack各层API手册
2014-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人