凌晨同学的c语言学习
文章平均质量分 58
DoZhangQiang
这个作者很懒,什么都没留下…
展开
-
13 邻接矩阵
若E是无向边(简称边)的有限集合时,则图G为无向图。边是顶点的无序对,记为(v, w)或(w,v),因为(v,w)=(w,v), 其中v,w是顶点。可以说顶点w和顶点v互为邻接点。边(v, w)依附于顶点w和v,或者说边(v, w)和顶点v, w相关联. 简单图:不存在重复边,不存在顶点到自身的边多重图:某两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联 路径:顶点到顶点之间的一条路径,路径是指顶点序列 简单路径:在路径序列中,顶点不重复出现的路径回路:第一个顶点和最后一个顶点相同原创 2022-06-10 15:03:23 · 152 阅读 · 1 评论 -
12 哈夫曼树
一、概述对于给定的有各自权值的 n 个结点,构建哈夫曼树有一个行之有效的办法:1、在 n 个权值中选出两个最小的权值,对应的两个结点组成一个新的二叉树,且新二叉树的根结点的权值为左右孩子权值的和;2、在原有的 n 个权值中删除那两个最小的权值,同时将新的权值加入到 n–2 个权值的行列中,以此类推;3、重复 1 和 2 ,直到所以的结点构建成了一棵二叉树为止,这棵树就是哈夫曼树二、代码#include <iostream>#include <fstream&.原创 2022-05-30 17:25:14 · 169 阅读 · 0 评论 -
7 累加&汉诺塔的递归实现
目录一 概述二 代码2.1 累加代码2.2 汉诺塔代码三 总结&反思一 概述递归是一种很适合计算机的实现方式,在计算机内部是使用栈来实现的,递归的优点是空间复杂性比价低,代码短。但是也有一定的缺点,就是并不是那么高效(时间上),以及并不适合并行化,汉诺塔还是很有意思的一个代码(虽然我一直在被他摧残)二 代码2.1 累加代码#include<stdio.h>#include<stdlib.h>//累加的递归形式int a原创 2022-05-11 21:22:06 · 70 阅读 · 0 评论 -
6 表达式求值
目录一、概述二、代码2.1 访问栈顶函数2.2 符号优先级判断2.3 符号优先级判断2.4 操作符栈与数据栈的计算2.5 核心计算2.6 测试样例2.7 测试结果三、总结&反思一、概述比较难的一个点,之前看CSAPP的时候里面有提到中缀表达式和后缀表达式。当时看的时候就没有明白,今天结合老师的代码仔细地顺一下这个思路。二、代码一些栈的基本操作就不再赘述,讲几个核心函数2.1 访问栈顶函数/*访问栈顶元素*/...原创 2022-05-10 16:55:07 · 161 阅读 · 0 评论 -
C语言 以字符串的长度为衡量标准进行排序
最近遇到了一个比较综合的题目是这样的,先描述一下题目,首先输入一个数字N,代表着下面将会有N个字符串的输入注意:N不会超过10,每个字符串的长度不会超过20我们要编写一个程序,实现对这N个字符串的升序,并输出。```#include <stdio.h>#include <string.h>int main(){ char ch[10][21]; /*对比一维字符串数组,比如说,定义 char x[150] 后面用x来表示整个字符串就可以了 ...原创 2021-11-23 17:00:51 · 1420 阅读 · 0 评论 -
C语言 getchar()相关知识以及缓冲区
在输入字符串的时候,我们经常会用到 getchar()这个函数。比如下面这个经典的用法:int main() { int ch; while ((ch = getchar()) != EOF) { putchar(ch); } return 0;}第一行输入:ccc (换行)第二行输出:ccc并且光标会出现在第三行。接下来,我们用比较通俗的语言来解释一下这个过程计算机内部发生了什么。当我们从键盘输入字符的时候,字符在一个名叫做缓冲区的地方暂时存起来,这个时候还没有原创 2021-10-21 19:14:43 · 529 阅读 · 0 评论