C语言
学苦以至
持之以恒,进取拼搏
展开
-
二叉树的概念及其排序方法
1. 树树是数据结构中的一种.结点是数据结构中的基础,是构成复杂数据结构的基本组成单位树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:1)n>0时根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。2)m&原创 2020-08-30 22:34:18 · 7038 阅读 · 0 评论 -
C++STL算法(1)概述
1. 函数对象重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载“()”操作符,使得类对象可以像函数那样调用。注意:1.函数对象(仿函数)是一个类,不是一个函数。2.函数对象(仿函数)重载了”() ”操作符使得它可以像函数一样调用。分类:假定某个类有一个重载的operator(),而且重载的operator()要求获取一个参数,我们就将这个类称为“一元仿函数”(unary functor);相反原创 2020-07-23 13:42:26 · 363 阅读 · 0 评论 -
数据结构C语言版(六)二叉树
#include<stdio.h>#include<string.h>#include<stdlib.h>//定义二叉树的结构体struct bintreenode{ char ch;//结点元素 bintreenode * rchlid;//左孩子结点 bintreenode * lchlid;//右孩子结点};void Ergodicbintree(struct bintreenode * data){ if (NULL == data) {原创 2020-06-26 14:33:54 · 298 阅读 · 0 评论 -
数据结构C语言版(五)队列
1. 队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。2. 链式队列实现头文件声明#pragma once#include<stdio.h>#include<string.h>#include<stdlib.h>#ifdef __cplusplusextern "C"{#endif原创 2020-06-26 11:57:45 · 128 阅读 · 0 评论 -
数据结构C语言版(四)堆栈的实现
1. 堆栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。2. 堆栈的两种实现2.1 数组实现堆栈头文件声明函数.h#pragma once #include<stdio.h>#include<string.原创 2020-06-26 11:26:06 · 1282 阅读 · 0 评论 -
数据结构C语言版(三)链表的实现
1. 动态链表由于事先不知道需要分配多少内存空间,所以这种链表在后续插入的时候需要动态申请存储空间,并且存储空间不一定连续, 在进行插入和删除时则不需要移动元素, 修改指针域即可,所以仍然具有链表的主要优点,链表结构可以是动态地分配存储的,即在需要时才开辟结点的存储空间,实现动态链接。2.C语言实现单向链表的数据结构可以分为两部分:数据域和指针域,数据域存储数据,指针域指向下一个储存节点的地址//在实现动态链表前先定义结构体//链表节点数据结构 struct Linknode { s原创 2020-06-26 10:57:49 · 267 阅读 · 0 评论 -
数据结构C语言版(二)动态数组的实现
在C语言中静态数组可以直接定义数组实现,但是动态数组的实现就需要借助指针,结构体等方法实现。int a[100];//定义整型数组,其大小为100char b[100];//定义字符型数组,其大小为100/*上述数组的空间大小是固定的,添加删除都有标准的函数可以调用但是这对于正常的程序来说是不够的我们随时可能要修改数组空间,动态的规划数组的大小,节省内存空间,提升代码的效率这时就需要用到动态数组*/1. 定义结构体和函数在写动态数组前要考虑到定义动态数组那么就不能直接定义,这是就需要定义原创 2020-06-22 16:33:14 · 729 阅读 · 0 评论 -
数据结构C语言版(一)绪论
1.什么是数据结构数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。1.逻辑结构1.线性结构线性结构中的元素存在一对一(1:1)的相互关系。其中有数组、栈、队列、单链表、循环链表、双链表、递归。2.树形结构树形结构中的元素存在一对多的相互关系。(1:n)3. 集合结构集合结构中的数据元素同属于一个集合,他们之间是并列的关系(松散关系),除此之外没有其他关系。4.图形结构图形结构中的元素存在多对多(m:n)的相互关系。2.存储结构(也称:物理结构原创 2020-06-22 15:22:45 · 630 阅读 · 0 评论 -
C语言随笔(七)文件操作
通过程序实现文件的读取操作1.头文件声明为了方便函数的调用,.c文件之间调用函数通常使用.h文件进行声明,将需要用到的函数声明在.h文件中。首先我们要读取的文件内容为#这是我的的ip地址ip:127.0.0.1#这是我的端口port:8080#这是用户名username:root#这是密码password:rootaaa:bbbbcccc:dddd其中#号开头的内容为注释内容为无效行,不需要读取,有效行格式为key(关键字):value(有效值)将要使用到的函数声明原创 2020-06-16 21:28:03 · 265 阅读 · 0 评论 -
C语言随笔(六)指针
1.指针指针,就是指内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。定义指针代码如下:int a=100;int * p;// 定义一个整型指针char *f,f1;//定义字符型指针//其中只有f是指针,f1是字符型数据,因为*只会和第一结合p=&a;//对指针进行赋值&printf("%d\n",p原创 2020-06-12 16:29:44 · 163 阅读 · 0 评论 -
C语言随笔(五)数组逆置
1原创 2020-06-11 20:47:27 · 226 阅读 · 0 评论 -
C语言随笔(一)
1. C代码的执行程序C语言编译过程1)预处理1宏定义展开2.头文件展开3.删除注释4.条件编译linux下命令行格式:gcc -E a.c -o a.i(下同)2)编译1.检查语法2.转换为汇编语言gcc -S a.i -o a.s3)汇编1.汇编变为机器语言gcc -c a.s -o a.o4)连接将库文件连接变为可执行文件gcc a.o -o a.exe2.C代码第一次#include<stdio.h>//头文件,使得代码可以正常运行void mai原创 2020-06-11 20:18:50 · 256 阅读 · 0 评论