自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构课设】校园导游系统

/************************************************************ 版权所有 (C)2017,高兆港** 文件名称:main.cpp* 文件标识:无* 内容摘要:主函数* 其它说明:无* 当前版本: V1.0* 作 者:高兆港* 完成日期: 20171222** 修改记录1:* 修改日期:20171222* 版本号:

2017-12-22 09:45:30 4940

原创 课程大总结

转眼之间,一学期的数据结构课程就结束了,在贺老师的指导下,我对数据结构有了更进一步的认识,对编程更是有了深层次的理解和热爱。下面,我将对自己在本学期数据结构课程中所学到的知识及学习经历做出总结。1.在本学期的课程下,我学习了从不从角度对数据进行规划,比如,

2017-12-18 16:35:37 219

原创 【第十周】项目1-层次遍历算法的验证

【二叉树的层次遍历算法】   实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试btree.h#ifndef BTREE_H_INCLUDED #define BTREE_H_INCLUDED #define MaxSize 100 typedef char ElemType;

2017-11-30 10:27:07 255

原创 【第九周】项目3-利用二叉树遍历思想解决问题(2)

#include     #include "btree.h"        int Like(BTNode *b1,BTNode *b2)  //判断二叉树b1和b2是否相似    {        int like1,like2;        if (b1==NULL && b2==NULL)    //如果两二叉树都为空,相似            return 1;        els

2017-11-30 10:15:57 169

原创 【第九周】项目三-利用二叉树遍历解决问题(1)

#include #include "btree.h" int Nodes(BTNode *b) //计算二叉树节点个数 { if (b==NULL) return 0; else return Nodes(b->lchild)+Nodes(b->rchild)+1; }

2017-11-30 10:12:27 211

原创 【第九周】项目2-二叉树遍历的递归算法

实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。#include #include "btree.h" void PreOrder(BTNode *b) //先序遍历的递归算法 { if (b!=NULL) {

2017-11-23 11:12:17 1613

原创 【第九周】项目1-二叉树算法库

要求:   1、头文件btree.h中定义数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括:void CreateBTNode(BTNode *&b,char *str); //由str串创建二叉链BTNode *FindNode(BTNode *b,ElemType x); //返回data域为x的节点指针BTNode *LchildNode(B

2017-11-16 11:14:16 233

原创 【第八周】项目4(2)-稀疏矩阵的三元组表示的实现及应用

稀疏矩阵相加代码:头文件tup.h#ifndef TUP_H_INCLUDED #define TUP_H_INCLUDED #define M 6 #define N 7 #define MaxSize 100 //矩阵中非零元素最多个数 typedef int ElemType; typedef

2017-11-16 10:49:51 294

原创 【第八周】项目4(1)-稀疏矩阵的三元组表示的实现及应用

稀疏矩阵的三元组表示代码:1.头文件:tup.h,包含定义稀疏矩阵的三元组表示数据结构的代码、宏定义、要实现算法的函数的声明#ifndef TUP_H_INCLUDED #define TUP_H_INCLUDED #define M 6 #define N 7 #define MaxSize 100 //矩阵中非零元素最多个数

2017-11-16 10:44:57 293

原创 【第八周】项目3(3)-上、下三角矩阵、对角矩阵的压缩存储结构,以及相关的基本运算的实现

#include #include #define N 4 #define M 10 void Init(int *&b) { b = (int*)malloc(sizeof(int)*(N*(N+1)/2)); } //返回存储在b[M]中,对应二维数组A[i][j]的值 int Value(int b

2017-11-16 10:04:20 5271

原创 【第八周】项目3(2)-压缩存储的对称矩阵的运算

#include #define N 4 #define M 10 int value(int a[],int i,int j) { if (i>=j) return a[(i*(i+1))/2+j]; else return a[(j*(j+1))/2+i]; } void madd(int a[],int

2017-11-16 10:03:40 192

原创 【第八周】项目3(1)-对称矩阵的压缩与存储应用

#include #include #define N 4 //为N阶对称矩阵初始化存储数据的一维数组B void Init(int *&b) { b = (int*)malloc(sizeof(int)*(N*(N+1)/2)); } //返回存储在b[M]中,对应二维数组A[i][j]的值 int Value(int b[], int

2017-11-16 10:03:20 172

原创 【第八周】项目2-顺序串算法

采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString *&s, char c1, char c2); (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 void Invert(SqString &s) (3)从串s中删除其值等于c的所

2017-11-16 10:02:51 214

原创 【第八周】项目1-建立顺序串的算法库

1.头文件:sqString.h,包含定义顺序串数据结构的代码、宏定义、要实现算法的函数的声明[cpp] view plain copy#ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED #define MaxSize 100 //最多的字符个数 typedef struct { ch

2017-11-09 10:46:33 188

原创 【第七周】项目6-停车场模拟

设停车场是一个可停放n辆汽车的狭长死胡同,南边封口,汽车只能从北边进出(这样的停车场世间少有)。汽车在停车场内按车辆到达时间的先后顺序,最先到达的第一辆车停放在车场的最南端,依次向北排开。若车场内已停满n辆汽车,则后来的汽车只能在门外的候车场上等候,一旦有车开走,则排在候车场上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路(假定停车场内设有供车辆进出的便道,

2017-11-09 10:43:55 291

原创 【第七周】项目5-排队看病

编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事: (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。 (2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。 要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下: (1)排队——输入排队病人的病历号,加入到病人排队队列中。 (2)就诊——病人排队队列中最前面

2017-11-09 10:41:31 554 1

原创 【第七周】项目4-队列数组

创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作为结束。设输入的值为x,其个位数字的大小为i,则将x插入到编号为i的队列中。最后输出所有的非空队列。  要求将队列处理成链式队列,使用链式队列算法库中定义的数据类型及算法,程序中只包括一个函数(main函数),入队和出队等操作直接在main函数中调用即可。  设程序运行时输入:70 59 9

2017-11-09 10:39:33 236

原创 【第七周】项目3-负数把正数赶出队列

设从键盘输入一整数序列a1,a2,…an,试编程实现:当ai>0时,ai进队,当ai头文件:sqqueue.h,包含定义顺序环形队列数据结构的代码、宏定义、要实现算法的函数的声明[cpp] view plain copy#ifndef SQQUEUE_H_INCLUDED #define SQQUEUE_H_INCLUDED #define MaxSize 5 typed

2017-11-09 10:37:52 513 1

原创 【第七周】项目2-建立链队算法库

头文件:liqueue.h,包含定义链队数据结构的代码、宏定义、要实现算法的函数的声明[cpp] view plain copy#ifndef LIQUEUE_H_INCLUDED #define LIQUEUE_H_INCLUDED typedef char ElemType; typedef struct qnode { ElemType data;

2017-11-09 10:34:39 178

原创 【第七周】项目1-建立顺序环形队列算法库

代码:头文件:sqqueue.h,包含定义顺序环形队列数据结构的代码、宏定义、要实现算法的函数的声明#ifndef SQQUEUE_H_INCLUDED #define SQQUEUE_H_INCLUDED #define MaxSize 5 typedef char ElemType; typedef struct { ElemType da

2017-11-09 10:32:27 226

原创 【第五周】项目3-括号的匹配

假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。 例如,输入2+(3+4)*[2+{[3]}]-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。提示:(1)遇到左括号入栈,遇到右括号后,出栈一个符号,看是否配对。若配对,继续,直到读完所有的符号,栈也正好为空。若在中间出现一个不配对的,或者_____

2017-11-09 10:24:00 303

原创 【第5周】项目2-建立链栈算法库

#ifndef LISTACK_H_INCLUDED #define LISTACK_H_INCLUDED typedef char ElemType; typedef struct linknode { ElemType data; //数据域 struct linknode *next; //指针域 } Li

2017-11-09 10:22:03 140

原创 【第五周】项目1-建立顺序栈算法库

定义顺序栈存储结构,实现其基本运算,并完成测试。 头文件:sqstack.h,包含定义顺序栈数据结构的代码、宏定义、要实现算法的函数的声明#ifndef SQSTACK_H_INCLUDED #define SQSTACK_H_INCLUDED #define MaxSize 100 typedef char ElemType; typedef struct

2017-11-09 10:20:34 171

原创 【第四周】项目6-多项式求和

提示: 1、存储多项式的数据结构   多项式的通式是pn(x)=anxn+an−1xn−1+...+a1x+a0。n次多项式共有n+1项。直观地,可以定义一个数组来存储这n+1个系数。以多项式p(x)=−3.4x10−9.6x8+7.2x2+x为例,存储这个多项式的数组如下图:    可以看出,这种方案适合对某些多项式的处理。但是,在处理一些次数高但项数少的多项式时,存在浪费空间的

2017-10-19 10:49:35 207

原创 【第四周】项目5-(2)循环双链表应用

设非空线性表ha和hb都用带头节点的循环双链表表示。设计一个算法Insert(ha,hb,i)。其功能是:i=0时,将线性表hb插入到线性表ha的最前面;当i>0时,将线性表hb插入到线性表ha中第i个节点的后面;当i大于等于线性表ha的长度时,将线性表hb插入到线性表ha的最后面。#include #include #include "cdlinklist.h" voi

2017-10-19 10:47:48 213

原创 【第4周】项目5-(1) 猴子选大王

一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。输入m和n,输出为大王的猴子是几号。提示: (1)链表解法:可以用一个循环单链表来表示这一群猴子。表示结点的结构体中有两个成员:一个保存猴子的编号,一个为指向下一个人的指针,编号为m的结点再指向编号为1的

2017-10-19 10:45:22 253

原创 【第四周】项目4-建设双链表算法库

#ifndef DLINKLIST_H_INCLUDED #define DLINKLIST_H_INCLUDED typedef int ElemType; typedef struct DNode //定义双链表结点类型 { ElemType data; struct DNode *prior; //指向前驱结

2017-10-19 10:43:38 161

原创 【第四周】项目3-单链表应用

1、设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。#ifndef LINKLIST_H_INCLUDED #define LINKLIST_H_INCLUDED #include #include #include"lin

2017-10-19 10:42:07 391

原创 【第四周】项目2-建立“单链表”算法库

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2——建立单链表算法库 *作 者:高兆港 *版 本 号:v1.0 *  按照“0207将算法变程序”部分建议的方法,建设自己的专业基础设施算法库。这一周,建的是单链表的算法库。   算法库包括两个文件:  

2017-10-19 10:25:44 161

原创 【第四周】项目1-建立单链表

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目1——建立单链表 *作 者:高兆港 *版 本 号:v1.0 * 定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。 */ #include #include

2017-10-19 10:20:59 170

原创 【第三周】项目4-顺序表应用

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目4——顺序表的应用 *作 者:高兆港 *版 本 号:v1.0 *  定义一个采用顺序结构存储的线性表,设计算法完成下面的工作:   1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂

2017-10-19 10:10:00 172

原创 【第三周】项目3-求集合并集

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目3——求集合并集 *作 者:高兆港 *版 本 号:v1.0 *  假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示, 即线性表中的数据元素即为集合中的成员。设计算法, 用函数u

2017-10-19 10:08:31 244

原创 【第三周】项目2-建设“顺序表”算法库

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2 - 建设“顺序表”算法库 *作 者:高兆港 *版 本 号:v1.0 *  问题描述:领会“0207将算法变程序”部分建议的方法,建设自己的专业基础设施算法库。这一周,建的是顺序表的算法库。

2017-10-19 10:05:59 190

原创 【第三周】项目1-顺序表的基本运算

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目1 - 顺序表的基本运算 *作 者:高兆港 *版 本 号:v1.0 *  问题描述:实现顺序表基本运算有算法, 依据“最小化”的原则进行测试。

2017-09-24 14:46:35 187

原创 【第二周】项目3-汉诺塔程序

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:高兆港 *版 本 号:v1.0 * (2) 用递归算法求解汉诺塔问题,其复杂度可以求得为O(2n),是指数级的算法。当盘子数为n个时,需要移动的次数是f(n)=2n−1。*/ 汉诺塔程序#include

2017-09-17 17:52:26 171

原创 【第二周】项目3 - 体验复杂度(1)

时间复杂度为(n2)的选择排序程序#define MAXNUM 100000void selectsort(int a[], int n){ int i, j, k, tmp; for(i = 0; i < n-1; i++) { k = i; for(j = i+1; j <

2017-09-17 16:54:45 142

原创 【第二周】项目2 - 程序的多文件组织

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:高兆港*版 本 号:v1.0 * 最简单的多文件组织,一个项目中有3个文件:   (1) .h 头文件:定义数据类型、声明自定义函数、定义宏等   (2).cpp 源文件1:用于实现头文件中声明的自定义函数   (3

2017-09-17 16:11:19 168

原创 【第二周】项目1 - C/C++语言中函数参数传递的三种方式

问题描述:输入两个待交换的整数,调用函数得到两个交换的整数值输入:两个整数输出:两个整数交换的值1.传值#include using namespace std;void myswap1(int x,int y);void myswap2(int *p1,int *p2);void myswap3(int &x,int &y);int main(){ i

2017-09-17 10:36:24 220

原创 【2017.08.11】

两天没学,发现以前的一些东西开始遗忘了。今晚学到了‘自定义函数’,其中解释了Python中‘return’可以返回多个值,其实是因为 返回值 是一个‘tuple’,也就是其实还是只返回一个值,另外这一小节让我对自己用Python写贪吃蛇有了点期待,但是在练习(写一个返回值为一元二次方程两个解的函数)中发现,原来一个简单的函数需要这么多细节问题需要处理,那就算了,贪吃蛇看命吧。

2017-08-11 23:16:30 135

原创 【2017.08.07】

今天没有学完“dict和set” 第一是因为今天学习时间太少,第二是Python太‘上层’了,很多东西知其然不知所以然,这种感觉很不舒服。

2017-08-07 22:41:59 132

空空如也

空空如也

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

TA关注的人

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