
C
文章平均质量分 92
C
Hairui瑞
@
展开
-
使用内存泄漏攻击C程序
内存泄漏:指分配出去的内存在使用之后没有释放掉,没有回收,长此以往,会造成没有足够的内存可以分配。一般表现为运行时间越长,占用的内存越多,最终导致系统奔溃#include<stdio.h>#include<stdlib.h>int main(void){ while(1) { malloc(1024); } return 0;}...原创 2019-05-10 09:29:01 · 483 阅读 · 0 评论 -
字符串冒泡排序
#include<stdio.h>#include<string.h>#include<stdlib.h>>int main(void){ int n,k,i,j; char* a[100],str[100]; scanf("%d%d",&n,&k); for(i=0;i<n;i++) { scanf(...原创 2019-04-26 20:04:20 · 2581 阅读 · 0 评论 -
解密指针数组无法多次输入问题
动态输入多个字符串指针数组定义:数组中每个元素都是指针类型;(虽然教材上写的定义指针数组是char *a[10],但不建议这样写,因为这样会误认为指向的是char类型的数据,建议写成char* a[10],表示a是存储10个char*类型的数组)问题比如输入n个字符串并原样输出,你会发现无法输出#include<stdio.h>//反面教材#include<string...原创 2019-04-26 17:49:08 · 245 阅读 · 0 评论 -
复数四则运算
复数四则运算整体思路先计算出加减乘除后实部和虚部的值,然后编写输出格式函数函数名称函数说明print用于输出=的前部分printp输出等号的结果部分#include<stdio.h>#include<math.h>void print(double a,double b);//输出输入部分 void printp(doubl...原创 2019-04-26 16:03:15 · 1369 阅读 · 0 评论 -
有理数加法
有理数加法#include<stdio.h>int main(void){ int a1,b1,a2,b2,i,m,n; scanf("%d/%d",&a1,&b1); scanf("%d/%d",&a2,&b2); m=b1*b2;//通分 n=a1*b2+a2*b1; if(n%m==0)//n%m而不是m%n,判断是不是整数 ...原创 2019-04-26 08:48:16 · 1523 阅读 · 0 评论 -
指定位置输出字符串(详细解析)
指定位置输出字符串主函数部分#include <stdio.h>#define MAXS 10char *match( char *s, char ch1, char ch2 );int main(){ char str[MAXS], ch_start, ch_end, *p; scanf("%s\n", str); scanf("%c %c...原创 2019-04-25 11:46:22 · 6479 阅读 · 4 评论 -
递增的整数序列链表的插入 c语言
递增的整数序列链表的插入插入原则:先连后断,先将准备插入的数据结点p连接在要插入的位置L->Next处,再将L->Next连接在P处List Insert( List L, ElementType X ){ List p,q;//p为准备插入的结点 q=L;//用于储存原链表L的头 p=(List)malloc(sizeof(struct Node)); p->...原创 2019-04-24 20:22:23 · 3000 阅读 · 0 评论 -
关于树的一些题
关于树的一些习题原创 2019-05-22 16:43:29 · 9322 阅读 · 0 评论 -
平衡二叉树的调整(详解 LL、RR、LR、RL)
当向一棵AVL树中插入一个新的结点,有可能会破坏树的平衡,这时就需要调整这棵树,本文将详细讲解各种调整的过程原创 2019-05-21 21:46:50 · 23478 阅读 · 13 评论 -
二叉搜索树的常用操作
二叉搜索树定义:这颗树可以为空,也可以不空。左子树的值小于跟结点的值,右子树的值大于跟结点的值,并且左右子树都是二叉搜索树。由于二叉搜索树有左小右大的有序特征,对二叉搜索树进行中序遍历,将得到一个从小到大的序列非递归查找的时间复杂度为:T(n)=O(h),h为树的高度,如果是一个完美二叉的话,T(n)=O(log~2n),如果是一个斜二叉树的话,T(n)=O(n),n为结点个数;...原创 2019-05-17 09:52:03 · 212 阅读 · 0 评论 -
二叉树的创建
二叉树的层序创建创建步骤:概括:队列里面出一个元素,输入两个元素作为这个元素的左右结点,然后将这两个元素中不为0的元素接着入队列先输入第一个数据,如果第一个数据为0,返回NULL,表示这棵树为空,若不为0,分配一个结点,同时将该结点放进队列中若队列不为空,从队列中取出一个地址,并建立这个地址(A)的左右孩子读入一个数据(A左孩子的数据),如果这个数据为0,则另(A)左孩子的地址为NUL...原创 2019-05-16 21:48:11 · 282 阅读 · 0 评论 -
还原二叉树
还原二叉树想要还原一棵二叉树,需要知道两种序列先序和中序或后序和中序例:已知先序和中序序列1、首先通过先序序列找到根结点2、在中序序列找到在先序序列中已经找到的根结点,先看中序序列根结点左边的所有元素3、在先序序列中对比中序序列根结点左边的所有结点,这些结点在先序序列中排最靠前的就是下一个结点(例在找到根结点a后,先看中序序列,a左边的元素有c b e d,再看先序序列,发现...原创 2019-05-14 10:58:16 · 1374 阅读 · 1 评论 -
二元运算表达式树及其遍历的关系
可以用树表示一个二元的运算表达式,例如下面这棵树:通过观察发现,所有的叶节点都是要计算的元素,所有的非叶节点存储的都是运算符。通过不同的遍历方式对这颗树进行遍历,发现如下规律...原创 2019-05-14 09:54:02 · 1367 阅读 · 2 评论 -
二叉树的高度
求二叉树的高度(递归)用递归求二叉树的高度,定义三个整形变量HL(记录左结点是否存在,存在为1,不存在为0)HR (记录右结点是否存在,存在为1,不存在为0)MAXH(用于存HL和HR比较的结果)PostorderGetHeight(BinTree BT){ BinTree T=BT; int HL,HR,MAXH; if(BT) { HL=PostorderGe...原创 2019-05-14 09:21:39 · 1487 阅读 · 0 评论 -
二叉树的遍历
遍历顺序规律:先序遍历当第一次遇见结点就输出中序遍历当第一次遇见结点时不输出,第二次遇见结点时就输出后序遍历在输出的时候判断一下子树结点是否全都输出,如果全都输出就可以输出此结点...原创 2019-05-13 21:48:51 · 170 阅读 · 0 评论 -
树的存储方法--儿子兄弟表示法
构造一个结构Element树的结点FirstChild指向第一个儿子NextSibling指向兄弟如果没有儿子或兄弟,就让相应指针为空原创 2019-05-12 20:57:13 · 1043 阅读 · 0 评论 -
二分查找
二分查找(先排序)typedef struct LNode *List;struct LNode{ ElemenType Data[MAXSIZE]; int length;};int BinarySearch(List L,ElemenType X){ int left,right,mid; left=1; right=L->length; while(left&...原创 2019-05-12 11:45:00 · 105 阅读 · 0 评论 -
线性结构--队列常用操作
循环队列的顺序存储实现和队列的链式存储实现队列:先进先出,只能从队列的尾部进入,从头部出去常用操作循环队列一、循环队列的顺序存储实现1、声明定义和初始化#define MAXSIZE//储存最大元素的个数 typedef struct QNode *Queue;struct QNode{ ElemenType Data[MAXSIZE]; int front; in...原创 2019-05-12 10:14:39 · 264 阅读 · 0 评论 -
堆栈--中缀表达式转化为后缀表达式
转换方法例1: 2*(6/3+4)-5=7结果为:2 6 3 / 4 + * 5 -例2: a*(b+c)/d结果为:a b c + * d注:当遇到左括号未入栈时,这时左括号的优先级最高,当左括号入栈以后,就把左括号优先级看成最低参考浙江大学何钦铭老师...原创 2019-05-11 20:56:50 · 716 阅读 · 1 评论 -
线性结构--堆栈常用操作
一、后缀表达式求法例:562/+34*-中缀表达式:5+6/2-3*4=-4进行运算的时候先拿出来数的放运算符右边,后拿出来的放运算符左边二、栈的顺序存储实现1、定义声明typedef struct SNode *Stack;struct SNode{ ElemenType Data[MAXSIZE]; int Top;}; 2.顺序栈的创建Stack Creat...原创 2019-05-11 19:33:05 · 328 阅读 · 0 评论 -
线性结构--线性表常用操作
线性表常用操作原创 2019-05-09 16:54:41 · 1071 阅读 · 0 评论 -
二叉树的性质 n0=n2+1
一、计算叶结点个数每条边对应一个节点,只有根节点没有相应的边.先计算边数,根据 总结点数=边数+1,除去度为1,2,3,和4的结点,剩下的就是叶子节点边数为:n=1*4+2*2+3*1+4*1=15个结点数:m=n+1=16个叶结点数:16-4-2-1-1=8个边数:2*4+3*2+4*1=18总结点:18+1=19叶结点:19-4-2-1=12...原创 2019-05-05 16:58:34 · 6001 阅读 · 1 评论 -
一元多项式的加法和乘法 c语言
一元多项式的加法和乘法(C语言链表实现)题目总体结构:main函数ReadPolyAttachAddMultcomparePrintPoly各函数解释:函数名负责功能ReadPoly读入数据Attach将数据构建成链表Add多项式相加Mult多项式相乘compare比较PrintPoly打印结果代码#include&l...原创 2019-04-14 19:32:12 · 4621 阅读 · 0 评论