Linux C——标准IO
一、概念 在C语言库中定义一系列对文件输入输出的函数。 二、特点 1.缓冲机制 标准IO的优点就是通过缓冲机制减少系统调用的次数,提高效率,输出的数据暂存在缓冲区,缓冲区刷新或满时输出。 2.流 文件流是一种用于处理文件输入和输出的抽象概念,文件流将文件和C语言的数据处理机制连接起来,使数据的写入(输入流)和读出(输出流)更方便。 默认打开了三个流…
数据结构——树
概念 树的数据元素之间的关系是一对多,每个节点最多有一个前驱,但可以有多个后继。 1.度数:一个节点的子树的个数称为该节点的度数 2.树度数:树中节点的最大度数 3.叶节点或终端节点: 度数为零的节点 4.节点层次: 根节点的层次为1,根节点子树的根为第2层,以此类推 5.树的深度或高度: 树中所有节点层次的最大值 二叉树 二叉树每个根节点最多有两…
数据结构——队列
顺序队列(循环队列) 顺序队列的实现方法和顺序表相同,只不过顺序队列比顺序表多了一个表示结构体成员表示队头元素的下标。 结构体 #define N 5 typedef int datatype; typedef struct { datatype data[N]; int rear; int front; }sequeue_t; 上述结构体表示该顺…
数据结构——栈
栈分为顺序栈和链式栈,顺序栈是有顺序表的方法实现栈的功能,而链式栈则是用链表的方法实现栈的功能。 顺序栈 结构体 typedef struct seqstack { int *data; int maxlen; int top; }seqstack_t; 其中,指针data可以当作数组名来使用,maxlen表示有效元素个数,也就是栈的长度,top是…
数据结构——链表
顺序表在内存空间内是连续的,长度也是固定的,而且插入和删除相对麻烦,链表就很好地解决了顺序表的缺点。链表和顺序表相反,链表在内存空间内是不连续的,需要通过指针来进行连接,而且长度不固定,随用随加。 链表结构体 struct link { int data; struct slink *next; }; 链表的每个元素由两部分组成,数据域和指针域,数…
数据结构——顺序表2
上一篇文章说到可以用last来标记数组的最后一个元素,但是我们还是需要定义一个变量来存放数据,如果变量定义在子函数中,函数结束后,变量也随之消亡,这对于数据的存放显然是不安全的。 我们可以使用malloc函数在堆区给数据申请空间,只要这块空间没有被free,数据便会一直存在(程序没有结束的情况下),但是使用malloc为数组和last去分别申请空间…
数据结构——顺序表1
线性表的逻辑结构是线性结构,采用顺序存储和链式存储。线性表包括顺序表、链表(单向链表、双向链表、单向循环链表、双向循环链表)、栈(顺序栈、链式栈)、队列(顺序队列、链式队列)。 顺序表 顺序表即数组,其在内存空间内是连续的,即顺序存储。 数组的插入和删除操作 对于数组元素的插入和删除,有以下代码: #include <stdio.h> …
数据结构——概述
什么是数据结构? 我们在学习C语言的时候编写过一些程序,程序由两部分组成,第一是解决问题的办法,也就是算法,第二就是在解决问题的过程中会产生一定量的数据,这些数据元素之间的关系、数据怎样存储以及对数据的操作(增删改查)就构成了数据结构。 数据结构 数据 数据是一个类似集合的概念,数据有多个数据元素组成,数据元素则由数据项来进行描述,数据项是数据的最…
C语言基础小项目——简单的学生成绩管理系统(含视频讲解)
概述 学完了C语言基础部分,根据现有知识点写了这个小项目。功能要求实现学生成绩的录入、输出、排序、平均分计算以及按学号查找成绩,另外,还要有基本的帮助菜单、清屏、退出功能。 思路 创建学生结构体,结构体成员包括学号id、语文、数学、英语三科成绩和平均分,再将各个功能通过函数进行封装,通过主函数的循环调用以达到要求的功能。另外,最近正好学了Linux…