- 博客(39)
- 收藏
- 关注
原创 课程大总结
数据结构是研究计算机科学与工程的基础。学习数据结构能让我更好的学习计算机。这门课程我学到了很多东西。首先我认识到了什么是数据结构以及其相关的定义和类型。然后认识到了什么是算法,还会对算法进行分析。知道了程序是由算法和数据结构加以构成。其后又学习了线性表和他的顺序存储结构和链式存储结构。然后又学习了栈和队列的知识。认识了栈的顺序存储结构和链式存储结构,以及队列的链式存储结构和顺序存储结构,并且对于他
2017-12-14 11:11:45 212
原创 unity 性能优化学习笔记——静态资源的导入
在不降低视觉效果的情况下尽量减小贴图大小,最好的方式是纹理映射的每一个纹素的大小正好符合屏幕上显示像素的大小,如果纹理小了会造成欠采样,纹理显示模糊,如果纹理大了会造成过采样,纹理显示噪点。- 根据纹理用途的不同选择不同的纹理加载方式,如流式纹理加载Texture Streaming、稀疏纹理Sparse Texture、虚拟纹理VirtualTexture等方式。 二是纹理图集可以减少碎纹理过多,因为他们打包在一个图集里,通过压缩可以更有效的利用压缩,降低纹理的内存成本和冗余数据。
2023-06-25 15:30:24 428
原创 第八周 项目猴子选大王(数组版)
【项目 - 猴子选大王(数组版)】 一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王。输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子。 要求采用数组作为存储结构完成。[参考解答1] 在一个数组中,数组中用1表示猴子在圈中,用
2017-12-13 10:49:47 583
原创 第八周 项目3-顺序串算法
项目 - 顺序串算法】 采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString *&s, char c1, char c2); (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 void Invert(SqString &s) (3
2017-12-13 10:43:48 199
原创 第八周 项目2 数据结构之自建算法库——链串
链串算法库采用程序的多文件组织形式,包括两个文件:1.头文件:liString.h#ifndef LISTRING_H_INCLUDED#define LISTRING_H_INCLUDEDtypedef struct snode{ char data; struct snode *next;} LiString;void StrAssign(LiStri
2017-12-13 10:39:56 194
原创 第八周 项目1 数据结构之自建算法库——顺序串
1.头文件:sqString.h#ifndef SqString_H_INCLUDED#define SqString_H_INCLUDED#define MaxSize 100 //最多的字符个数typedef struct{ char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length;
2017-12-13 10:33:11 201
原创 第11周 第三项 数据结构例程——图的遍历
1、深度优先遍历——DFS#include #include #include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){ ArcNode *p; int w; visited[v]=1; printf("%d ", v); p=G->adjlist[v].firstarc;
2017-11-23 11:09:26 190
原创 第11周 项目2 数据结构实践——操作用邻接表存储的图
【项目 - 操作用邻接表存储的图】 假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点编号; (3)计算图G中出度为0的顶点数; (4)判断图G中是否存在边i,j>。 利用下图作为测试用图,输出结果。 提示:(1)分别设计函数实现算法;(2)不要全部实现完再测试,而是实现一个,测
2017-11-23 11:03:44 242
原创 第十一周 项目一 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
图的存储结构主要包括邻接矩阵和邻接表,本算法库提供存储结构的定义,以及用于构造图存储结构、不同结构的转换及显示的代码。算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:graph.h,包含定义图数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV
2017-11-23 11:00:42 274
原创 第十周 数据结构例程——哈夫曼树
#include #include #define N 50 //叶子结点数#define M 2*N-1 //树中结点总数//哈夫曼树的节点结构类型typedef struct{ char data; //结点值 double weight; //权重 int parent; //双亲结点 int lchild;
2017-11-16 11:06:50 201
原创 第十周 数据结构例程——线索化二叉树(中序)
#include #include #define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; int ltag,rtag; //增加的线索标记 struct node *lchild; struct node *rchild;} TBTNode;
2017-11-16 10:58:23 191
原创 第十周 数据结构例程——二叉树的构造
1.由先序序列和中序序列构造二叉树定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定。证明(数学归纳法) 基础:当n=0时,二叉树为空,结论正确。 假设:设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定。 归纳:已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1…an−1;中序序列是b0b1…bk−1bkbk+1…
2017-11-16 10:49:34 287
原创 第十周 数据结构例程——二叉树的层次遍历算法
【二叉树的层次遍历算法】 实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 请利用二叉树算法库。#include #include "btree.h"void LevelOrder(BTNode *b){ BTNode *p; BTNode *qu[MaxSize];
2017-11-16 10:38:53 512
原创 第九周 项目3 - 利用二叉树遍历思想解决问题(2)
(3)求二叉树b的叶子节点个数#include #include "btree.h"int LeafNodes(BTNode *b) //求二叉树b的叶子节点个数{ int num1,num2; if (b==NULL) return 0; else if (b->lchild==NULL && b->rchild==NULL)
2017-10-26 11:10:52 304
原创 第九周 项目3 - 利用二叉树遍历思想解决问题(1)
假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数 (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②t1和t2之一为空
2017-10-26 10:55:58 224
原创 第九周 项目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!=NUL
2017-10-26 10:39:48 281 1
原创 第九周 项目1 - 二叉树算法库
二叉树的链式存储算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:btree.h,包含定义二叉树的链式存储数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struct nod
2017-10-26 10:24:16 290
原创 第七周 项目4 - 队列数组
创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作为结束。设输入的值为x,其个位数字的大小为i,则将x插入到编号为i的队列中。最后输出所有的非空队列。 要求将队列处理成链式队列,使用链式队列算法库中定义的数据类型及算法,程序中只包括一个函数(main函数),入队和出队等操作直接在main函数中调用即可。 设程序运行时输入:70 59 9
2017-10-26 10:16:03 226
原创 第七周 【项目3 - 负数把正数赶出队列
设从键盘输入一整数序列a1,a2,…an,试编程实现:当ai>0时,ai进队,当ai使用本文所用的环形队列的算法库(sqqueue.h)#include #include #include "sqqueue.h"int main(){ ElemType a,x; SqQueue *qu; //定义队列 InitQueue(qu); //队列初始
2017-10-19 11:20:16 165
原创 第七周 项目2 - 建立链队算法库
链队算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:liqueue.h,包含定义链队数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef LIQUEUE_H_INCLUDED#define LIQUEUE_H_INCLUDEDtypedef char ElemType;typedef struct qnode{ ElemType data;
2017-10-19 11:09:23 154
原创 第七周 项目1 - 建立顺序环形队列算法库
下图是数据存储结构设计及各种操作实现的要点:1.头文件:sqqueue.h,包含定义顺序环形队列数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef SQQUEUE_H_INCLUDED#define SQQUEUE_H_INCLUDED#define MaxSize 5typedef char ElemType;typedef struct{ E
2017-10-19 10:52:02 158
原创 第5周项目项目3 - 括号的匹配
假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。 例如,输入2+(3+4)*2+{[3]}-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误提示: (1)遇到左括号入栈,遇到右括号后,出栈一个符号,看是否配对。若配对,继续,直到读完所有的符号,栈也正好为空。若在中间出现一个不配对的,或者____,则可以得
2017-10-19 10:29:46 170
原创 第五周项目 项目2 - 建立链栈算法库
1.头文件:listack.h,包含定义链栈数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef LISTACK_H_INCLUDED#define LISTACK_H_INCLUDEDtypedef char ElemType;typedef struct linknode{ ElemType data; //数据域 struct
2017-10-12 11:05:35 203
原创 第5周项目 项目1 - 建立顺序栈算法库
建设自己的专业基础设施算法库。顺序栈算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:sqstack.h,包含定义顺序栈数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef SQSTACK_H_INCLUDED#define SQSTACK_H_INCLUDED#define MaxSize 100typedef char ElemTyp
2017-10-12 10:57:46 235
原创 第四周项目 项目5 - 猴子选大王
群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。输入m和n,输出为大王的猴子是几号。提示: (1)链表解法:可以用一个循环单链表来表示这一群猴子。表示结点的结构体中有两个成员:一个保存猴子的编号,一个为指向下一个人的指针,编号为m的结点再指向编号为1
2017-10-12 10:48:03 214
原创 第四周项目 项目3 - 单链表应用
1、设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。 程序中利用了已经实现的单链表算法,头文件LinkList.h及其中函数的实现见单链表算法库#include #include #include "linklist.h"void Reverse
2017-10-12 10:38:01 398
原创 第四周项目 项目2 - 建设“单链表”算法库
建立单链表数据存储结构基本操作的算法库。1.头文件:linklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef LINKLIST_H_INCLUDED#define LINKLIST_H_INCLUDEDtypedef int ElemType;typedef struct LNode //定义单链表结点类型{
2017-10-12 10:29:56 229
原创 第四周项目 1 建立单链表
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:渣.cpp *作 者:杨合进 *完成日期:2017年10月10日 *版 本 号:v1.0 * *问题描述:两种方法建立单链表 *输入描述:一组数 *程序输出:见程序运行截屏 */ 1 代码如下
2017-10-12 10:21:40 172
原创 第四周项目 1 建立单链表
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:渣.cpp *作 者:杨合进 *完成日期:2017年10月10日 *版 本 号:v1.0 * *问题描述:两种方法建立单链表 *输入描述:一组数 *程序输出:见程序运行截屏 */ #include
2017-10-12 10:11:34 202
原创 第三周 项目4 2
/* 烟台大学计算机学院 文件名称:345.cpp 作者:杨合进 完成日期:2017年9月28日 问题描述:将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。 输入描述:无 输出描述:处理后的结果 */ #include "../list.h" #include //移动
2017-09-28 11:20:58 149
原创 第三周:项目 - 顺序表应用 1
烟台大学计算机学院 文件名称:123.cpp 作者:杨合进 完成日期:2017年9月28日 问题描述:删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1); 输入描述:无 输出描述:删除后的元素 #include "../list.h" #include
2017-09-28 11:17:14 203
原创 第三周:项目3 - 求集合并集
假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。设计算法,用函数unionList(List LA, List LB, List &LC )函数实现该算法,求一个新的集合C=A∪B,即将两个集合的并集放在线性表LC中。提示: (1)除了实现unnionList函数外,还需要在main函数中设计代码,调用unionList进行测试和演示; (
2017-09-28 11:15:21 161
原创 项目2 - 建设“顺序表”算法库
本文为算法库中的第一个,针对线性表中的顺序存储结构,实现各种基本运算。 算法库包括两个文件: 头文件:list.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明; 源文件:list.cpp,包含实现各种算法的函数的定义 list.h:#ifndef LIST_H_INCLUDED#define LIST_H_INCLUDED#defin
2017-09-21 10:34:00 130
原创 第三周项目1-顺序表的基本算法
* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:1234.cpp *作 者:杨合进 *完成日期:2017年9月21日 *版 本 号:v1.0 * *问题描述:顺序表基本算法的实现 *输入描述:一组数 *程序输出:见程序运行截屏 */(1)初始化线性表InitList(&L):构造一个空的线性表
2017-09-21 10:21:20 169
原创 第二周 项目3 汉诺塔程序
此问题即为汉诺塔系列问题中的最经典问题在解决问题的过程中,整体思想还是非常重要的;举个例子,若有n个盘子,它的移动步骤是这样的:先将(n-1)个盘子借助第三根柱子移动到第二根柱子上,然后我们将最下面那个最大的盘子直接移动到第三根柱子上,最后我们借助第一根柱子将第二根柱子上的(n-1)个盘子移动到第三根柱子上!* *Copyright (c) 2017, 烟台大学计算
2017-09-20 10:41:27 338
原创 第二周 项目3 - 体验复杂度
*Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:123.cpp *作 者:杨合进 *完成日期:2017年9月20日 *版 本 号:v1.0 * *问题描述:使用两种不同的算法对十万条数据进行排序 *输入描述:含有十万条数据的文档 *程序输出:见程序运行截屏 */第一种算法#include #i
2017-09-20 10:28:15 299
原创 项目2 - 程序的多文件组织
/* *Copyright © 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:shiyan.cpp *作 者:杨合进 *完成日期:2017年9月14日 *版本号:v1.0 * *问题描述:程序的多文件组织 *输入描述:1 2 *程序输出:见截图 */ 学习数据结构,目标就是要编制出有相当规模的程序的。将所有的代码放在一个文件
2017-09-14 10:53:39 326
原创 项目1 - C/C++语言中函数参数传递的三种方式
Copyright (c) 2017, 烟台大学计算机学院 All rights reserved. 文件名称:shuimuqinghua.cpp 作 者:杨合进 完成日期:2017年9月14日 版 本 号:v1.0 问题描述:输入三个数并使用交换函数交换 输入描述:1 2 程序输出:测试结果 一 直接传
2017-09-14 10:44:21 176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人