文章分类 -  C语言

摘要:一、拓扑排序的概念 对于一个AOV网,我们通常需要把它的所有顶点排成一个满足下述关系的线性序列V1,V2,····,V(n).如果AOV网中从顶点Vi到顶点Vj有一条路径,则在该线性序列中顶点Vi必在顶点Vj之前。满足这种关系的序列成为拓扑排序。 对AOV网构造拓扑序列的操作成为拓扑排序,即将AOV 阅读全文
posted @ 2021-12-02 15:17 旺旺哈 阅读(295) 评论(0) 推荐(0) 编辑
摘要:实训练习的时候,老师叫我们用非递归方法实现一下二叉树的前序遍历、中序遍历、后序遍历,用到了栈的存储结构,看来栈这一种存储结构用的还是比较多的,话不多说,代码如下: 一、前序非递归遍历 1 void PreOrderTraverse(BiTree *T){ 2 BiTree *p; 3 Stack * 阅读全文
posted @ 2021-11-21 22:28 旺旺哈 阅读(295) 评论(0) 推荐(0) 编辑
摘要:四则运算表达式求值 表达式求值是程序设计语言编译中的一个最基本的问题。它的实现是栈应用的一个典型例子。要对表达式正确求值,首先要能够正确解释表达式。例如,要对算数表达式 7+(4-2)*3+12/2 求值,首先要了解算数四则运算的规则。可归纳为: (1)先乘除后加减; (2)从左到右算; (3)先括 阅读全文
posted @ 2021-10-20 17:49 旺旺哈 阅读(296) 评论(0) 推荐(0) 编辑
摘要:直接上代码! (1)线索二叉树的存储结构 1 typedef enum{link,thread}pointertag;/*link==0表示指向左右孩子指针,thread==1表示指向前驱或后继的线索*/ 2 typedef struct BiTNode{//二叉线索存储结点结构 3 char da 阅读全文
posted @ 2021-10-12 20:23 旺旺哈 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、顺序存储结构 二叉树的顺序存储结构一般只适用于完全二叉树,其存储形式用一组地址连续的存储单元按照完全二叉树的每个结点编号的顺序存放结点的内容。因此,必须确定好树中各数据元素的存放次序,使得各数据元素在这个存放次序中的相互位置能反映出数据元素之间的逻辑关系。 树中每个结点的编号过程为:首先把树根节 阅读全文
posted @ 2021-10-06 21:51 旺旺哈 阅读(1562) 评论(0) 推荐(0) 编辑
摘要:♂写了个多项式相加,有不完美的地方,欢迎交流♂~ 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define null 0 4 typedef struct node{ 5 int coef;//系数 6 int exp;//指数 7 struct no 阅读全文
posted @ 2021-09-27 21:49 旺旺哈 阅读(232) 评论(0) 推荐(0) 编辑
摘要:一、链队列 队列的链式存储结构称为链队列,链队列的结构和各种基本操作均类似线性链表,只不过它的删除和插入操作受限,只允许 在队尾插入、队头删除。为了操作方便,可以将队头指针指向队列的头结点,队尾指针指向终端结点。 二、链队列的基本操作 (1)链队列的结构定义 1 typedef struct nod 阅读全文
posted @ 2021-09-27 21:37 旺旺哈 阅读(533) 评论(0) 推荐(0) 编辑
摘要:一、队列的定义 队列是一种运算受限制的线性表,它与堆栈的不同之处在于元素的添加在表的一端进行,而元素的删除在另一端进行。允许添加元素的一端称为队尾,允许删除元素的一端称为队头。队列的特点是先进先出,后进后出,所以队列也称先进先出表。 二、顺序队列 与堆栈类似,队列最简单的表示方式是采用一维数组,设数 阅读全文
posted @ 2021-09-26 15:24 旺旺哈 阅读(1553) 评论(0) 推荐(0) 编辑
摘要:一、链表及顺序表去重 (1)链表去重 1 //链表去重 2 #include <stdio.h> 3 #include <stdlib.h> 4 #define null 0 5 typedef struct node{ 6 int data; 7 struct node *next; 8 }Sql 阅读全文
posted @ 2021-09-23 14:06 旺旺哈 阅读(255) 评论(0) 推荐(0) 编辑
摘要:一、链式栈的运用 栈的链式存储结构和各种基本操作均类似于线性链表,只是要注意它的插入和删除操作,只能在栈顶进行,为了方便 操作,将链表的头部作为栈顶。 二、链式栈的基本操作 (1)链式栈的结构定义 1 //定义一个结点 2 typedef struct node{ 3 int data; 4 str 阅读全文
posted @ 2021-09-14 11:48 旺旺哈 阅读(374) 评论(0) 推荐(1) 编辑
摘要:一、栈的定义 堆栈简称栈,是限定仅在表的一端进行插入和删除操作的线性表。通常将进行插入和删除的一端叫做栈顶(top),不允许 插入和删除的一端叫做栈底(bottom),不含任何元素的栈叫做空栈。 由于堆栈元素的插入和删除操作只是在栈顶进行,总是后进去的元素先出来,所以堆栈又称为后进先出线性表。 理解 阅读全文
posted @ 2021-09-12 14:56 旺旺哈 阅读(156) 评论(0) 推荐(0) 编辑
摘要:一、双向链表基本概论 对单向链表进行改进的另一种链式存储结构是双向链表。双向链表中的每一个结点除了有向后的指针外,还有一个指向前一个结点的指针, 这样形成的链表中有两条不同方向的链,因此,从某一个结点均可向两个方向访问。 双向链表较单向链表虽然多占了一些存储单元,但对其插入和删除操作,以及查找结点的 阅读全文
posted @ 2021-09-11 14:42 旺旺哈 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一、约瑟夫问题描述 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数, 数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 二、代码实现 1 /*约瑟夫问题*/ 2 阅读全文
posted @ 2021-09-08 19:45 旺旺哈 阅读(389) 评论(0) 推荐(0) 编辑
摘要:一、循环链表介绍 循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。 由此,从表中的任何一个结点出发均可找到表中其他结点。 循环链表的操作和线性链表基本一致,差别在于算法中的循环条件不是p或p->next是否为空,而是在于是否等于头指针。 二、循环 阅读全文
posted @ 2021-09-07 14:32 旺旺哈 阅读(201) 评论(0) 推荐(0) 编辑
摘要:学习静态链表的时候,理解清楚真是废了我九牛二虎之力啊,查找了好多博客,再看了一下视频讲解后,便觉得柳暗花明又一村, 现整理如下: 一、什么是静态链表 用数组描述的链表,即称为静态链表。在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR。 二、静态链表重点 数组的第 阅读全文
posted @ 2021-09-06 19:25 旺旺哈 阅读(257) 评论(0) 推荐(0) 编辑
摘要:一、什么是单链表? 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在于内存中未被占用的任意位置, 比起顺序存储结构,在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址,即指针。 我们把存储数据元素信息的域成为数据域,把存储后继结点地址 阅读全文
posted @ 2021-09-04 19:12 旺旺哈 阅读(70) 评论(0) 推荐(0) 编辑
摘要:一.顺序表的定义 顺序表是线性表的顺序表示,即用一组地址连续的存储单元依次存储线性表的数据元素。顺序存储结构也称为向量存储。向量是内存中一批地址连续的存储单元。 由于线性表的所有数据元素属于同一类型,因此每个元素在存储器中占用的空间大小相同,假设向量的第一个元素存放的地址为LOC(a1),每个元素占 阅读全文
posted @ 2021-08-21 13:12 旺旺哈 阅读(246) 评论(0) 推荐(0) 编辑
摘要:C语言中字符型数组的赋值以及相关函数! 1.字符数组初始化 (1)直接逐个初始化字符数组: 1 char arr[12]={ ' I ' , ' a ' , ' m ' , ' f ' , ' r ' , ' o ' , ' m ' , ' C ' , ' h ' , ' i ' , 'n ' , 阅读全文
posted @ 2021-08-16 17:42 旺旺哈 阅读(2517) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示