自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【查找】基于线性表的查找法

查找的主要方法基于线性表的查找法 一、顺序查找法顺序查找法的特点是,用所给关键字与线性表中各元素的关键字逐个比较,直到成功或失败。存储结构通常为顺序结构,也可为链式结构。顺序结构数据类型的定义:#define LIST_SIZE 20typedef struct {KeyType key;OtherType other_data;} RecordType;typedef struct {RecordType r[LIST_SIZE+1]; /* r[0]为工作单元 */int.

2020-06-17 19:15:28 600

原创 【图】图的存储结构

邻接矩阵表示法

2020-05-10 10:09:17 302

原创 【图】图的基本概念

图的定义图的基本术语

2020-05-09 12:31:33 184

原创 Fibonacci数列

问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的...

2020-05-08 11:31:45 119

原创 【队列】队列的应用举例

1.打印杨辉三角 注意:所打印的杨辉三角形的最大行数一定要小于循环队列的 MAXSIZE 值。当然,本例用链队列也完全可以实现。【算法描述】void YangHuiTriangle(){ SeqQueue Q; InitQueue(&Q); /* 初始化*/ EnterQueue(&Q, 1); /* 第一行元...

2020-05-07 13:00:35 4357

原创 【队列】队列的顺序存储(循环队列)

11

2020-05-07 12:25:27 1130

原创 【队列】队列的链式存储

队列的定义队列是另一种限定性的线性表,它只允许在表的一端插入元素,而 在另一端删除元素,所以队列具有先进先出 (Fist In Fist Out,缩写为 FIFO)的特性。在队列中,允许插入的一端叫做队尾(rear)。允许删除的一端则称为队头(front)。链队列的存储结构typedef struct Node{ QueueElementType data; /*数据域*...

2020-05-06 10:58:38 262

原创 时钟模拟显示程序

#include <stdio.h>typedef struct clock{ int hour; int minute; int second;} CLOCK;/* 函数功能:时、分、秒时间的更新 */void Update(CLOCK *t){ static long m = 1; t->hour = m / 3600; t->min...

2020-04-24 15:24:30 884

原创 【树】哈夫曼树及其构造

1.哈夫曼树的基本概念结点间的路径和路径长度路径是指从一个结点到另一个结点之间的分支序列路径长度是指从一个结点到另一个结点所经过的分支数目。结点的权和带权路径长度在实际的应用中,人们==给树的每个结点赋予一个具有某种实际意义的实数,称该实数为这个结点的权。==在树型结构中,把从树根到某一结点的路径长度与该结点的权的乘积,叫做该结点的带权路径长度。  树的带权路径长度树的带权路径...

2020-03-26 16:56:40 42132

原创 【树】树、森林和二叉树的关系

树的存储结构1.双亲表示法这种方法用一组连续的空间来存储树中的结点,在保存每个结点的同时附设一个指示器来指示其双亲结点在表中的位置,其结点的结构如下图所示:双亲表示法的形式说明如下:#define MAX 100typedef struct TNode{ DataType data; int parent;} TNode;树可以定义为:typedef st...

2020-03-26 14:52:13 2800

原创 【树】由遍历序列确定的二叉树

例:已知一棵二叉树的先序序列与中序序列分别为:A B C D E F G H IB C A E D G H F I试构造该二叉树。分析:根据定义,二叉树的先序遍历是先访问根结点,其次再按先序遍历方式遍历根结点的左子树,最后按先序遍历方式遍历根结点的右子树。这就是说,在先序序列中,第一个结点一定是二叉树的根结点。如下图(a)所示。另一方面,中序遍历是先遍历左子树,然后访问根结点,最后再...

2020-03-26 09:40:40 356

原创 【树】线索二叉树的基本概念及遍历

基本概念我们知道,在有 n 个结点的二叉链表中共有 2n 个链域,但只有 n-1 个有用的非空链域,其余 n+1 个链域是空的。可以利用剩下的 n+1 个空链域来存放遍历过程中结点的前驱和后继信息。现作如下规定:若结点有左子树,则其 LChild 域指向其左孩子,否则 LChild 域指向其前驱结点;若结点有右子树,则其 RChild 域指向其右孩子,否则 RChild 域指向其后继...

2020-03-25 22:56:07 223

原创 【树】二叉树遍历算法基于栈的递归消除

二叉树的遍历问题递归的问题无法直接转换成循环,所以需要采用工作栈消除递归。工作栈提供一种控制结构,当递归算法进层时需要将信息保留;当递归算法出层时需要从栈区退出上层信息。递归进层的三件事保存本层参数,返回地址.传递参数,分配局部数据空间控制转移递归退层的三件事恢复上层传递结果转断点执行 中序遍历二叉树的非递归算法 初步【算法思想】 (1) 针对左递归,写出递归进...

2020-03-25 22:17:23 499

原创 【树】遍历算法应用

输出二叉树中的结点【算法思想】输出二叉树中的结点并无次序要求,因此可用三种遍历算法中的任何一种完成,只需将访问操作具体变为输出操作即可。下面给出采用先序遍历实现的算法。【算法描述】void PreOrder(BiTree root)/* 先序遍历输出二叉树结点, root 为指向二叉树根结点的指针 */{ if (root != NULL) { prin...

2020-03-25 18:15:35 358

原创 【树】二叉树的遍历及递归遍历算法

二叉树遍历的定义二叉树的遍历:按一定规律对二叉树中的每个结点进行访问且仅访问一次。其中的访问可指计算二叉树中结点的数据信息,打印该结点的信息,也包括对结点进行任何其他操作。为什么需要遍历二叉树?二叉树是非线性数据结构,通过遍历可以将二叉树中的结点访问一次且仅一次,从而得到访问结点的顺序序列。从这个意义上说,遍历操作就是将二叉树中结点按一定规律线性化的操作,目的在于将非线性化结构变成线性化...

2020-03-25 16:06:32 1932

原创 【树】二叉树的基本概念与性质

二叉树的定义与基本操作1.定义:把满足以下两个条件的树型结构叫做二叉树(Binary Tree): (1) 每个结点的度都不大于 2; (2) 每个结点的孩子结点次序不能任意颠倒。由此定义可看出,一个二叉树中的每个结点只能含有 0、1 或 2 个孩子,而且每个孩子有左右之分。位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。下给出了二叉树的五种基本形态: 图(a)所示为一棵空的二叉树;图...

2020-03-24 09:58:24 156

原创 【树】树的基本概念

树的定义与基本术语树的基本概念树是 n(n≥0)个结点的有限集合 T。当 n=0 时,称为空树;当 n>0 时,该集合满足如下条件:①其中必有一个称为根(root)的特定结点,它没有直接前驱,但有零个或多个直接后继。②其余 n-1 个结点可以划分成 m(m≥0)个互不相交的有限集 T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根的子树。每棵子树的根结点有且仅有一个直接前驱,但...

2020-03-23 21:53:48 1614

原创 【串】串的链式存储结构与应用/例题

块链串如果一个结点大小为 4 ,链域大小为 2 ,根据**存储密度=串值占用的存储位/实际为串分配存储位,故该字符串的存储密度为 2 /3 。**显然,串的存储密度越小,运算处理就越方便,但存储占用的量较大。应根据具体情况来确定使用串的何种存储结构。结点大小等于 1 :当 BLOCK_SIZE 等于 1 时,每个结点存放 1 个字符,结构同线性链表,存储结构可定义如下,插入、删除的处理方...

2020-03-23 15:33:10 3059

原创 【串】串的顺序存储结构

定长顺序串1.定义:定长顺序串是将串设计成一种静态结构类型,串的存储分配是在编译时完成的。与前面所讲的线性表的顺序存储结构类似,可用一组地址连续的存储单元存储串的字符序列。定长顺序串存储结构#include <stdio.h>#define MAXLEN 40 /*MAXLEN 表示串的最大长度*/typedef struct{ char ch[MAXLEN]; /...

2020-03-23 11:59:57 4309

原创 【串】串的基本概念

1.串的基本概念字符串(String):是由零个或多个字符组成的有限序列,记为:S = ′a1 a2 … an′( n ≥ 0 )ai∈V字符集合,每个 ai( 1 ≤ i≤ n)可以是字母、数字或其他字符。串也是一种特定的线性表,串的逻辑结构和线性表极为相似,其特定性仅在于串的数据对象限定为字符集。串的名字:S串的值:用单引号括起来的字符序列串的长度:n 是串中字符的个数空串(...

2020-03-23 09:02:20 5104

原创 【栈】栈的应用与递归

括号表达式【题目描述】假设表达式中包含三种括号:圆括号、方括号和花括号,它们可互相嵌套,如 ( [ { } ] ( [ ] ) )或( { ( [ ] [ ( ) ] ) } )等均为正确的格式,而 { [ ] } ) }或 { [ ( ) ] 或 ( [ ] }均为不正确的格式。在检验算法中可设置一个栈,每读入一个括号。若读入左括号,则直接入栈,等待相匹配的同类右括号;若读入右括号,...

2020-03-23 08:26:27 649

原创 【栈】链栈及其基本操作

栈的链式实现 栈的链式实现 栈的链式实现 栈的链式实现 栈的链式实现

2020-03-17 06:39:00 368

原创 【栈】顺序栈及其基本操作和应用[两栈共享]

栈的顺序实现1.定义利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素设一个位置指示器 top(栈顶指针)来动态地指示栈顶元素在顺序栈中的位置。通常以 top=-1 表示空栈。(=0的时候是栈中第一个元素) c语言描述顺序栈#define TRUE 1 #define FALSE 1 #define stack_size 50 typedef struct{ Sta...

2020-03-17 06:15:08 436

原创 【栈】栈的定义

111

2020-03-16 06:50:41 96

原创 【线性表】应用—一元多项式的表示及相加

1. 一元多项式的表示 2. 一元多项式的存储一元多项式的操作可以利用线性表来处理。因此,一元多项式也有顺序存储和链式存储两种方法。结点结构体定义如下struct polynode{ int coef; int exp; polynode *next;}polynode,polylist; 例:建立一元多项式链式存储算法【算法思想】通过键盘输入一组多项式...

2020-03-15 06:37:25 3577 1

原创 【线性表】顺序表与链表的综合比较

<-----------------------------------西北大学mooc摘要------------------------------------->1.基于空间的考虑顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模。若线性表的长度 n 变化较大,则存储规模难于预先确定。估计过大将造成空间浪费,估计太小又将使空间溢出的机会增多。在静态链表中,...

2020-03-15 06:34:45 498

原创 【线性表】循环/双向/静态链表

循环链表定义:首尾相接的链表结构:尾结点的指针域指向头结点或表的首元结点特点:表中所有结点都链接在一个环上判断循环链表空链表的条件:头指针的指针域指向自己(head->next==head) 循环链表的合并算法算法思路:遍历两表找表尾将第一表尾链接第二表头,将第二表尾链接第一表头linklist merge_1(linklist la,linklist lb)...

2020-03-15 04:51:19 221

原创 习题11-8 单链表结点删除

习题11-8 单链表结点删除本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;}; 函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struc...

2020-03-14 08:46:56 1376

原创 【线性表】单链表及其基本运算和应用

单链表的c语言定义typedef struct Node { ElemType data;/*数据域*/ struct Node *next;/*指针域*/} Node,*LinkLIst;/*给node起两个别名,这两个别名等效*/LinkLIst L;/*L为单链表的头指针,也称为单链表L*/LinkList 与 Node*同为结构指针类斜体样式型,这两种类型是等价的。通常我...

2020-03-11 20:33:25 1065

原创 学生管理系统v2.0

学生管理系统v2.0#include <stdio.h>#include <stdlib.h>#define ARR_SIZE 30 /* 最多可处理30人的学号和成绩 *///自定义函数声明int Menu(void); /* 显示系统功能菜单 */int...

2020-03-03 20:54:19 764

原创 【线性表】顺序表及其基本运算和应用

#define MAXSIZE 100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedef struct{ ElemType elem[MAXSIZE];/*线性表占用的数组空间*/ int last;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值), 空表置为-1*/ }SeqList; 二、按值查找在这里插入代码片...

2020-03-02 18:07:03 617

原创 练习5-3 数字金字塔

#练习5-3 数字金字塔本题要求实现函数输出n行数字金字塔。函数接口定义:void pyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格#include <stdio.h>void pyramid( int n );{ }int main(){ ...

2019-11-07 11:52:01 112

原创 练习5-2 找两个数中最大者

#练习5-2 找两个数中最大者本题要求对两个整数a和b,输出其中较大的数。函数接口定义int max( int a, int b );其中a和b是用户传入的参数,函数返回的是两者中较大的数#include <stdio.h>int max( int a, int b ){ int max; if(a>b){max=a;} else{max=b;} ret...

2019-10-29 14:36:40 243

原创 练习5-1 求m到n之和

练习5-1 求m到n之和本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。函数接口定义:int sum( int m, int n );其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。#include<stdio.h>int sum(int m,int n){ int sum=0; while(m<=n)...

2019-10-29 14:29:30 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除