- 博客(12)
- 收藏
- 关注
原创 算法初步学习
算法:数据结构中的算法,指的是数据结构所具备的功能解决特定问题的方法,它是前辈们的一些优秀的经验总结输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;确定性:算法中的每一条指令必须有确切的含义,不能产生多义性:可行性:算法中的每一条指令必须是切实可执行的,即原则上可以通过已经实现的基本运算执行有限次来实现(也称之为有效性);有穷性:算法必须能在有限步后终止
2021-06-07 11:51:45
174
原创 数据结构学习——图
图型(Graph)结构:什么是图型结构:由有穷且非空的顶点和顶点之间的边组成的集合通常表示:G(V,E) G表示一个图,V是图中顶点(元素)的集合,E是图中边(元素与元素之间的关系)集合 无向图: 边用(A,B)方式表示,点与点之间是互通 在无向图中,任意两个顶点之间都有边,则该无向图称为完全无向图 在有n个顶点的完全无向图中,有 n*(n-1)/2 条边有向图: 边用<A,B>方式表示,仅表示从A点到B点的边,有向图中的边也称为弧,A是弧尾,B是
2021-06-03 15:38:40
362
原创 数据结构——树
树型结构:1、树的基本概念 一种表示层次关系(一对多)的数据结构 有且仅有一个特定的节点,该节点没有前趋,被称为根节点 剩余的n个互不相交的子集,其中的每个子集也都是一棵树,都被称为根节点的子树 注意:树型结构具有递归性(树中有树)2、树的表示方法: 倒悬树、嵌套法、凹凸法3、树的专业术语 节点: 组成树的基础元素,同时它也是一棵树 节点的度: 该节点的子树的数量,与该节点有直接关系的 树的度(密度):树中节的度的最大值
2021-06-02 19:13:17
262
原创 数据结构学习---链表
封装链表:原来的单链表添加效率低,非法下标的判断效率也很低1、单链表 list.c节点:数据域指针域链表结构数据项:头指针尾指针节点数量2、静态链表 节点: 数据域 游标 静态链表的节点存储在连续的内存,通过游标来访问下一个节点 这种链表在插入、删除时只需要修改游标的值,而不用申请、释放内存从而达到链式结构的效果 但是也牺牲了随机访问的功能,主要是给没有指针的编译实现的一种单链表效果3、循环链表 链表的最后一个
2021-05-25 11:05:00
135
原创 数据结构学习---表
一、什么是数据结构1、数据结构的起源1968年,美国高德纳教授,《计算机程序设计的艺术》的第一卷《基本算法》的出版,开创了数据结构和算法的先河数据结构是一门研究数据之间的关系和操作的学科,而非计算方法数据结构+算法=程序 沃斯,凭借这个观点,获得了图灵奖,这句话展示了程序的本质2、数据结构的基本概念 数据: 所有能输入到计算机中,能被程序处理的描述客观事物的符号 (变量、数组) 数据元素: 组成数据的,有一定意义的基本单位,也称为节点(结构体变量) 数据项: 有独
2021-05-07 16:06:44
642
原创 预处理和宏
预处理指令:程序员所编写的代码不能被真正的编译器所编译,需要一段程序把代码翻译一下。翻译的过程叫做预处理,执行翻译的程序叫做预处理器,被翻译的代码叫做预处理执行指令,以#开头的都是预处理指令查看预处理结果: gcc -E code.c 把预处理的结果直接显示到终端上 gcc -E code.c -o code.i 把预处理的结果存储到.i结尾的文件中预处理指令的分类 #include 文件包含 #include < > 从
2021-04-23 16:38:12
191
原创 C语言项目3——通讯录
通讯录:姓名、性别、电话 最多能存储50个联系人功能: 1、添加联系人 2、按姓名删除联系人 3、按名字修改联系人信息 4、查找联系人,可以查找电话或名字,支持模糊 5、显示所有联系人代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <getch.h>#include <unistd.h>#de
2021-04-20 16:58:35
111
原创 字符串
字符: 在计算机中字符都是以整理形式存储的,当需要显示时根据ASCII表中的对应关系显示出相应的符号和密度 '\0' 0 '0' 48 'A' 65 'a' 97串: 是一种数据结构,是由一组连续的相同类型若干个数据组成,末尾有结束标志 对这种数据结构进行处理都是批量性处理,从开头位置到结束标志为止。字符串: 由字符组成的串行结构,他的结束标志是'\0'字符串的输入:char str[256];scanf %s 地址scanf ("%s" ,str)
2021-04-14 12:37:55
305
原创 C语言项目二——推箱子
推箱子:1、确定数字与字符的对应关系 0 printf(" "); 路 1 printf("@"); 人 2 printf("#"); 墙 3 printf("$"); 箱子 4 printf("O"); 目标点 5 printf("@"); 7 printf("$");2、定义地图char map[8][8] ={ {0,0,2,2,2,2,0,0}, {0,0,2,4,4,2,0,0}, {0,2,2,0
2021-04-07 21:09:39
462
原创 C语言项目一——迷宫
获取方向键的功能:使用getch.h头文件的getch函数1、在windows中把getch.h头文件放入共享文件夹2、终端进入共享文件夹 cd /media/sf_Share/3、复制头文件到C标准库中 sudo cp getch.h /usr/include/4、加读权限 sudo chmod +r /usr/include/getch.h走迷宫思路框架:1、定义二维字符数组作为迷宫‘#’ 墙壁 ’ ’ 路 ‘@’ 老鼠2、定义变量记录老鼠的位置3、获取游戏开始的时间
2021-04-07 20:47:29
343
原创 堆内存
什么是堆内存:是进程的一个内存段(text\date\bss\heap\stack),是由程序员手动管理的。特点:足够大 缺点:使用麻烦,需要手动管理为什么要使用堆内存:1、随着程序的复杂程序只会越来越多2、其他内存段的申请释放不受控制,堆内存的申请释放是受控制的如何使用堆内存:注意:C语言中没有控制堆内存的语句,只能使用C标准库提供的函数#include <stdlib.h>void *malloc(size_t size);功能:从堆内存中申请size个字节的内存,
2021-04-06 14:15:01
725
原创 C语言3.29指针学习
指针什么是指针指针就是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的就是整型数据,代表了内容的编号,通过这个编号可以访问到对应的内存。为什么要使用指针:1、函数之间是相互独立的,但是有时候会共享变量 函数传参是值传递 全局变量容易命名冲突 使用数组还需要传递长度 命名空间是独立的,但是地址空间是同一个,所以指针可以解决这个问题2、由于函数之间传参是值传递(内存拷贝),对于字节数较多的变量,值传递的效率较低,如果传递变量的地址,只需要传递4\8字节(操作类型)3、堆内存无
2021-03-30 18:59:29
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人