自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库 实验二(SQL语言-数据定义与更新操作)

使用SQL语句创建供应商表、零件表、工程项目表、供应情况表。设有如下关系模式:供应商:S(SNO,.SNAME,STATUS,CITY);零件:P(PNO,PNAME,COLOR,WEIGHT);工程项目:J(JNO,JNAME,CITY);供应情况:SPJ(SNO,PNO,JNO,QTY);其中,QTY为数量。创建供应商表Screate table S( SNO char(10) primary key, SNAME varchar(20) not null, STATUS nume

2021-05-07 10:38:51 3567

原创 数据库 实验一

根据学生、课程、学生与课程之间的多对多联系,上机创建数据库表(Student,Course,Grade),具体要求如下:1)定义表的属性,并设计合理的约束(实体完整性、参照完整性和用户自定义完整性);2)使用SQL语句INSERT INTO…VALUES向Student,Course,Grade数据库表插入数据;3)对各表进行简单查询(显示各表内容)。创建Student表Create table Student1( 学号 char(4) primary key, 姓名 varchar(50)

2021-05-03 15:01:23 221

原创 数据结构 第九章(学习笔记一(查找一))

基本概念查找 :在数据集合中寻找满足某种条件的数据元素的过程。查找结果分为 查找成功 和 查找失败。查找表 :用于查找的数据集合, 由同一种数据类型(或记录)的组成, 可以是一个数组或链表等数据类型。操作:1、检索满足条件的某个特定的数据元素的各种属性;2、查询某个特定的数据元素是否在查找表中;3、在查找表中插入一个数据元素;4、从查找表中删除一个数据元素。操作1和2合起来称作 静态查找表 , 全部操作合起来称作 动态查找表。关键字: 数据元素中唯一标识该元素的某个数据项的值, 使用基于

2020-12-15 16:48:31 808

原创 数据结构 实验六(二叉排序树字符统计)

编写一个控制台的工程,程序可以对用户任意输入的字符串中的字符进行统计,统计出字符、标点、数字出现的次数。根据用户输入的字符构建一个二叉排序树的动态查找表,key为字符的ACSII码,count值为该字符出现的次数。二叉排序树字符统计源代码#include<stdio.h>#include<string.h>#include<malloc.h>#define MAX_LENGTH 255typedef struct BSTreeNode { char ch;

2020-12-13 13:43:05 1389

原创 数据结构 实验五(银行叫号系统)

运用队列实现银行叫号系统。银行叫号系统源代码#include<iostream>using namespace std;struct Customers { int m_id=1;};class Bank {public: Bank(int queueCapacity);//创建队列 bool QueueEmpty();//判空队列 bool QueueFull();//判满函数 int QueueLength();//队列长度 bool EnQueue(Custo

2020-12-13 13:41:29 3783 2

原创 数据结构 实验四(图中两点间所有路径)

创建一个图,使用邻接表来存储点和边。输入起点与终点,输出两点间的所有路径。图中两点间所有路径源代码#include<iostream>#include<stdlib.h>using namespace std;#define VEX_MAXNUM 20#define STACK_H_INCLUDED#define STACK_INIT_SIZE 100 //存储空间初始分配量#define STACKINCREMENT 10 //存储空间分配增量typedef

2020-12-13 13:38:49 840 1

原创 数据结构 实验三(二叉树遍历)

创建一个二叉树,对这棵动态二叉树进行分析,将其用静态二叉链表表示。二叉树的动态二叉链表结构中的每个结点有三个字段:data,lchild,rchild。静态二叉链表是用数组作为存储空间,每个数组元素存储二叉树的一个结点,也有三个字段:data,lchild,rchild。lchild和rdhild分别用于存储左右孩子的下标。二叉树的遍历源代码#include<iostream>using namespace std;#define OK 1#define ERROR 0#defin

2020-12-13 13:36:54 743

原创 数据结构 实验二(一元多项式相加)

结合书上实验指导书上的例子,采用链式存储结构,将两个线性链表表示的一元多项式相加,并输出。此一元多项式遵循多项式相加运算规则:对于两个一元多项式中存在指数相同的项时,其对应系数相加。合并后系数和为零时,删除“和多项式”中此项;合并后系数和不为零时,则构成“和多项式”中的一项。对于两个一元多项式中存在的指数不相同的项,则分别复抄到“和多项式”中去,原多项式保持不变。一元多项式相加源代码#include<iostream>using namespace std;struct ListNod

2020-12-13 13:35:26 5982 2

原创 数据结构 实验一(两个单链表合并)

设有两个无头结点的单链表,分别为ha,hb,其链中有数据域data,链域next,两链表的数据都按递增序存放。现要求将hb表归到ha表中,且归并后ha仍按递增排序,归并中ha表中已有的数据若与hb相同,则hb中的数据不归并到ha中,hb的链表在算法中不允许破坏。两个单链表合并源代码#include <stdio.h>#include <stdlib.h>#define _CRT_SECURE_NO_WARNINGStypedef struct LNode { int d

2020-12-13 13:33:21 2594 3

原创 数据结构 第七章(学习笔记四(图的应用))

图的应用最小生成树定义性质算法实现Prim (普里姆)算法算法思路代码实现Kruskal(克鲁斯卡尔)算法算法思路代码实现拓扑排序基本概念算法思想参考代码实现关键路径基本定义基本计算事件Vk的最早发生时间 Ve(k)事件Vk的最迟发生时间 Vl(k)活动ai的最早开始时间e(i)活动ai的最迟开始时间l(i)活动ai的差额d(i) = l(i) - e(i)实例分析最短路径基本定义算法实现迪杰斯特拉(Dijkatra)算法实现思路详细过程参考代码实现弗洛伊德(Floyd)算法实现思路算法思想递推公式参考代码

2020-12-07 18:52:58 900

原创 数据结构 第七章(学习笔记三(图的遍历))

图的遍历图的遍历图的遍历之深度优先探索深度优先探索具体实现思路实例参考代码实现图的遍历之广度优先探索广度优先探索具体实现思路实例参考代码实现DFS&BFS实现图的遍历完整代码图的遍历从图中某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问一次且仅访问一次。图的遍历之深度优先探索深度优先探索深度优先搜索(DepthFirstSearch) ,也有称为深度优先遍历,简称为DFS。拿找钥匙例子来说, 无论从哪一间房间开始都可以,将房间内的墙角 、床头柜、床上、床下、衣柜、电视柜等

2020-11-26 19:32:03 215

原创 数据结构 第七章(学习笔记二(图的存储结构))

图的存储结构之邻接矩阵邻接矩阵的定义图的邻接矩阵(Adjacency Matrix) 存储方式是用两个数组来表示图。一个 一维数组存储图中顶点信息,一个 二维数组(称为邻接矩阵) 存储图中的边或弧的信息。图的邻接矩阵实现思路结点数为n的图G=(V)的邻接矩阵A是n x n的。将G的顶点编号为V1,V2…Vn(数组下标)若<Vi,Vj> ∈E,则 A [i][j] = 1,否则 A [i] [j] = 0实例(有向图)实例(无向图)网的邻接矩阵实现思路结点数为n的图G

2020-11-26 19:11:19 501

原创 数据结构 第七章(学习笔记一(图))

图图的定义图的其他基本概念无向图&有向图完全图子图连通图&强连通图生成树&生成森林稀疏图&稠密图顶点的度权&网有向树路径&路径长度&回路图的定义图(Graph)是由顶点 (Vertex) 的有穷非空集合 和顶点之间 边 的集合组成,通常表示为:G(V, E) , 其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。|V|表示图G中顶点的个数,也称为图G的阶;|E| 表示图G中边的条数。V = {A,B,C,D,E},|V| = 5

2020-11-24 19:31:51 1054 1

原创 数据结构 第六章(学习笔记四(哈夫曼树))

哈夫曼树哈夫曼树的定义构造哈夫曼树哈夫曼编码哈夫曼树的定义设二叉树具有n个带权值的叶节点,那么从根节点到各个叶节点的路径长度与相应节点权值的乘积的和,叫做二叉树的 带权路径长度。权: 权代表的是叶子结点的数据信息,是具体的值,也就是结点所储存的值。具有最小带权路径长度的二叉树称为 哈夫曼树 (也称最优数)。相同的叶节点构造出不同的二叉树构造哈夫曼树构造哈夫曼树的 原则:① 权值越大的叶节点越靠近根节点;② 权值越小的叶节点越远离根节点。构造哈夫曼树的 过程:哈夫曼编码规定哈

2020-11-19 17:40:00 2379 4

原创 数据结构 第六章(学习笔记三(线索二叉树))

回顾对于具有n个节点的二叉树,采用二叉链存储时,每个节点有两个指针域,总共有 2n 个指针域。其中只有 n-1 个节点被有效指针指向,即有 n-1 个非空指针域。所以共有 2n - (n-1) = n+1 个空链域。除根节点 (根节点没有指针指向)外,每个节点都有且仅有一个指向自己的指针,所以N个节点的二叉树,需要N-1个指针域,则空指针域有N+1个。相关概念① 采用某种方法遍历二叉树的结果是一个节点的 线性序列 。② 修改空链域,改为存放指向节点的前趋和后继节点的地址。③ 这样的指向该

2020-11-19 17:21:00 538

原创 数据结构 第六章(学习笔记二(二叉树))

二叉树二叉树的定义二叉树是有限的结点集合 (递归定义 )① 这个集合或者是空;② 或者由一个根结点和两颗互不相交的称为 左子树 和 右子树 的二叉树组成。二叉树的五种基本形态二叉树和二次树区别① 度不同度为2的树要求每个结点最多只能有两棵子树,并且至少有一个结点有两棵子树。二叉树的要求是度不超过2,结点最多有两个叉,可以是1或者0。② 分支不同度为2的树有两个分支,但分支没有左右之分;一棵二叉树也有两个分支,但有左右之分,左右子树的次序不能随意颠倒。③ 次序不同度为2的树从形式上看

2020-11-18 09:45:15 1076

原创 数据结构 第六章(学习笔记一(树))

树树的概念树的定义树的实际应用树的逻辑表示树的基本术语树的性质树的运算和存储结构树的基本运算树的遍历树的存储结构树的概念树的定义树的形式化定义: T = {D, R} (D表示 数据对象,R 表示数据关系)D是包含n个节点的有限集合(n≥0)。当n = 0时为空树,否则关系 R 满足以下条件:① 有且仅有一个节点 d0 ∈ D,它对于关系R来说没有前趋节点,节点d0称作树的根节点。② 除根节点外每个节点有且仅有一个前趋节点。③ D中每个节点可以有零个或多个后继节点 。树的递归定义: 树是由n

2020-11-10 17:08:01 577

原创 数据结构 第五章(学习笔记一(数组与广义表))

数组数组的定义1:一个 N 维数组是受 N 组线性关系约束的线性表。二维数组的逻辑结构可形式地描述为:2_ARRAY(D,R)其中 D={aij} | i=0,1,…,b1-1; j=0,1,…,b2-1;aij∈D0}R={Row,Col}Row={<aij,ai,j+1>|0<=i<=b1-1;0<=j<=b2-2;aij,ai,j+1∈D0}ai,j+1是aij在行关系中的后继元素。Col={<aij,ai+1,j>|0<=i&lt

2020-11-06 20:34:23 422

原创 数据结构 第三章(学习笔记四(链队列和循环队列))

队列的定义队列和栈相反,队列(queue)是一种先进先出(FIFO:first in first out)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。队列和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端叫队尾(rear),允许删除的一端称为队头(front)用链表表示队列,即链队列链队列的操作即为单链表的插入和删除操作的特殊情况,只是尚需修改尾指针和头指针。C语言实现链队列完整代码#include <stdio.h>#includ

2020-11-03 16:52:19 249

原创 数据结构 第三章(学习笔记三(表达式求值))

刚刚学习C语言的时候我们都写过计算器,但是当时写的计算器只能进行一步四则运算,对于一次输入类似这种(1+2)*3+4的运算则没有办法计算。本篇博客利用栈这种数据结构实现了支持带括号的表达式求值计算器。C语言实现表达式求值的完整代码#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>typedef int ElemType;#define STACK_I

2020-11-03 16:14:13 146

原创 数据结构 第三章(学习笔记二(迷宫求解))

《数据结构》严蔚敏版用栈实现迷宫求解问题求迷宫中从入口到出口的所有路径是一个经典的程序设计问题。由于计算机解决迷宫问题时,通常用的是“穷举求解”的方法,即从口出发,顺某方向向前探索,若能走通,则继续往前走;否则沿原入口路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止。为了保证在任何位置上都能沿原路退回,显然需要用一个后进先出的结构来保存从入口到当前位置的路径。因此,在求迷宫通路的算法中应用栈。程序中,建立二维数组为迷宫,0为墙壁,1为可以通行的道路。算法的基本思想是:若当前位置“可通”,

2020-10-27 16:49:06 486 2

原创 数据结构 第三章(学习笔记一(顺序栈和链栈))

什么是栈栈是限定只能在表的一端进行插入或删除操作的线性表。允许插入、删除操作的一端是栈顶、另一端是栈顶。一般将插入和删除操作称为入栈和出栈。现实生活中有很多类似于栈的操作,比如洗碗的时候,将洗干净的碗一个接一个的往上放(相当于入栈),取碗时,则从上面一个接一个往下取(相当于出栈)。我们放碗的顺序是12345、取碗的顺序是54321,放碗的时候必须按照从下往上的顺序放,不能先放上面的再放下面的,取得时候必须从上往下取。特点:限制在表的一端操作,后入先出(LIFO,即 Last In First

2020-10-18 11:31:54 296

原创 数据结构 第二章(学习笔记三(一元多项式的表示及相加))

线性表(一元多项式的表示及相加)运用线性表的链式存储结构以及链表的基本操作,实现一元多项式相加我们可以根据自己的需求分别输入两个一元多项式,并且能够实现显示输入的一元多项式,再将这两个一元多项式相加,输出结果。输入的要求是按照指数从小到大进行输入,并且项数必须为正整数,指数需为整数,系数为双精度型且不能为0。C++实现一元多项式相加代码#include<iostream>using namespace std;struct ListNode { double coef;//系数

2020-10-10 15:09:43 368

原创 数据结构 第二章(学习笔记二(链表))

线性表之链式存储(单链表)C语言实现单链表基本操作#include<stdio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#pragma warning(disable:4996)using namespace std;typedef int Status;

2020-10-07 20:13:04 279

原创 数据结构 第二章(学习笔记一(顺序表))

线性表之顺序存储线性表线性表(linear list)是最基本、最简单、也是最常用的一种数据结构。线性表是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表是具有相同特征的数据元素的一个有限序列。**线性表(linear list)**由n(n>=0)个数据元素(结点)a1,a2,…,an组成的有限序列线性表中元素的个数n(n≥0)称为线性表的长度,n=0时称为空表。对于非空的线性表或线性结构,特点为:1.存在唯一的一个被称作"第一个"的数据元素;2.存在唯一的一

2020-10-04 13:19:00 810

原创 数据结构 第一章(学习笔记)

数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。1.掌握数据、数据元素、抽象数据类型、数据结构、数据的逻辑结构与存储结构等概念。数据(Data):是客观事物的符号表示。在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(Data Element):是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理,有时也称之为结点、顶点或记录。数据项(Data Item):是数据元素的组成部分,是对客观事物某一方面特性的数据描述,是数

2020-09-07 16:04:03 2076 3

原创 C++实验二数组、指针和字符串

建立一个名为CStudent的类,该类有以下几个属性:学号、姓名(使用字符指针)、成绩,并为上述属性定义相应的方法。用C++ 面向对象的程序设计方法,找到并输出存放在CStudent类动态数组中学生成绩最高的学生信息(需考虑分数相同的情况,输出学号、姓名和成绩)。#include<iostream>using namespace std;class CStudent {private: long Num; char* Name; float Score;public: CSt

2020-06-02 16:32:47 777 3

原创 C++实验一 类和对象

C++实验一设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、姓名、性别、出生日期、身份证号等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的初始化和显示。要求包括:构造函数和析构函数、复制构造函数、内联成员函数、带默认形参值的成员函数、类的组合。#include <iostream>#include <cstring>using namespace std;class Date//Date类 {

2020-06-02 10:11:27 800

空空如也

空空如也

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

TA关注的人

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