《大话数据结构(C#实现)》 |
版本 |
作者 |
参与者 |
完成日期 |
备注 |
YanlzStruct_C#Base_V01_1.0 |
严立钻 |
|
2020.02.10 |
|
|
|
|
|
|
++++“大话数据结构(C#实现)”:是对“软件架构设计”的综合探索;【程序=数据结构+算法】:数据结构是程序设计的重要技术;数据结构在某种程度上和设计模式类似,都是前辈的武功套路,不同的是,设计模式是近几十年的卓越程序员的智慧结晶,而数据结构是几百上千年的无数科学家、数学家的智慧沉淀,更具有深厚的背景;数据结构是相互之间存在一种或多种特定关系的数据元素的集合;数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科;
++++“大话数据结构(C#实现)”:定位在一个科普类知识,了解“数据结构”以及相关算法研究,以及软件架构设计和框架编程!
++++【大话数据结构(C实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104242455
++++【大话数据结构( C# 实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104243017
++++【大话设计模式( C# 实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104256981
#第一篇:数据结构基础篇 |
++++数据结构(Data Structure)是带有结构特性的数据元素的集合,它研究的数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型;
++++数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象;通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构;
++++[集合]:数据结构中的元素之间除了“同属一个集合”的相互关系外,别无其他关系;
++++[线性结构]:数据结构中的元素存在一对一的相互关系;
++++[树形结构]:数据结构中的元素存在一对多的相互关系;
++++[图形结构]:数据结构中的元素存在多对多的相互关系;
++++[数组(Array)]:数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合;数组可以说是最基本的数据结构,在各种编程语言中都有对应;一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等;数组还可以有一维、二维以及多维等表现形式;
++++[栈(Stack)]:栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作;栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出;栈在汇编语言程序中,经常用于重要数据的现场保护;栈中没有数据时,称为空栈;
++++[队列(Queue)]:队列和栈类似,也是一种特殊的线性表;和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作;一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头;队列中没有元素时,称为空队列;
++++[链表(Linked List)]:链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点;链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分;其中,指针域保存了数据结构中下一个元素存放的地址;链表结构中数据元素的逻辑顺序时通过链表中的指针链接次序来实现的;
++++[树(Tree)]:树是典型的非线性结构,它是包括,2个结点的有穷集合K;在树结构中,有且仅有一个根结点,该结点没有前驱结点;在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m>=0;
++++[图(Graph)]:图是另一种非线性数据结构;在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对;如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系;
++++[堆(Heap)]:堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆;堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构;
++++[散列表(Hash)]:散列表源自于散列函数(Hash Function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录;
#第二篇:进阶算法篇 |
++++[有穷性(Finiteness)]:算法的有穷性是指算法必须能在执行有限个步骤之后终止;
++++[确切性(Definiteness)]:算法的每一步骤必须有确切的定义;
++++[输入项(Input)]:一个算法由0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
++++[输出项(Output)]:一个算法有一个或多个输出,以反映对输入数据加工后的结果;没有输出的算法是毫无意义的;
++++[可行性(Effectiveness)]:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性);
++++[输入]:有零个或多个输入;
++++[输出]:至少有一个输出;
++++[确定性]:组成算法的每条指令清晰,无歧义;
++++[有限性]:一个算法在执行有限步骤后必须结束,即计算步骤是有限的;
++++描述算法可以由多种方式,如自然语言、流程图、伪代码、程序设计语言;算法设计就是针对具体的问题,设计出良好的算法,使计算机能够解决该问题;同一个问题可以采用不同的算法实现,不同的算法可能时间、空间并不相同,一个算法的优劣可以用空间复杂度与时间复杂度来衡量;
++++[顺序存储结构]:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的;
++++[链式存储结构]:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的;
++++[抽象]:是指抽取出事物具有的普遍性的本质;“抽象”的意义在于数据类型的数学抽象特性;
++++[输入输出]:算法具有零个或多个输入;算法至少有一个或多个输出;
++++[有穷性]:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成;
++++[确定性]:算法的每一步骤都具有确定的含义,不会出现二义性;
++++[可行性]:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成;
++++[正确性]:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案;
++++[可读性]:算法设计的另一目的是为了便于阅读、理解和交流;
++++[健壮性]:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果;
++++[时间效率高和存储量低]:设计算法应该尽量满足时间效率高和存储量低的需求;
++推导大O阶:++++1、用常数1取代运行时间中的所有加法常数;++++2、在修改后的运行次数函数中,只保留最高阶项;++++3、如果最高阶项存在且不是1,则去除与这个项相乘的常数;得到的结果就是大O阶; |
++常用的时间复杂度所耗费的时间从小到大依次如下:++++O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n);
|
++++[O(1)]:常数阶;
++++[O(n)]:线性阶;
++++[O(n^2)]:平方阶;
++++[O(logn)]:对数阶;
++++【设计模式(精华篇)】:https://blog.csdn.net/VRunSoftYanlz/article/details/81322678
++++【软件架构设计】分类:https://blog.csdn.net/vrunsoftyanlz/category_9708791.html
++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/
#第三篇:数据结构剖析篇 |
++C1、数据结构基础 |
++++[基本数据类型(Primitive Data Type)]:不能以其他类型来定义的数据类型,或者称为标量数据类型(Scalar Data Type),几乎所有的程序设计语言都会为标量数据类型提供一组基本数据类型,如C#语言中的基本数据类型就包括了整数(int)、浮点(float)、字符(char)等;
++++[结构数据类型(Structured Data Type)]:结构数据类型也称为虚拟数据类型(Virtual Data Type),是一种比基本数据类型更高一级的数据类型,如字符串(string)、数组(array)、指针(pointer)、列表(list)、文件(file)等;
++++[抽象数据类型(Abstract Data Type:ADT)]:我们可以将一种数据类型看成是一种值的集合,以及在这些值上进行的运算及其代表的属性所组成的集合;“抽象数据类型”(Abstract Data Type, ADT)比结构数据类型更高级,是指一个数学模型及定义在此数学模型上的一组数学运算或操作;也就是说,ADT在计算机中是表示一种“信息隐藏”(Information Hiding)的程序设计思想及信息之间的某一种特定的关系模式;例如堆栈(Stack)就是一种典型的数据抽象类型,它具有后进先出(Last In, First Out)的数据操作方式;
++++[算法(Algorithm)]:算法是计算机科学中程序设计领域的核心理念之一,每个人每天都会用到一些算法;算法也是人类使用计算机解决问题的技巧之一,它不仅用于计算机领域,而且在数学、物理甚至是每天的生活中都应用广泛;
++++[大数据(海量数据,big data)]:大数据是指在一定时效(Velocity)内进行大量(Volume)、多样性(Variety)、低价值密度(Value)、真实性(Veracity)数据的获得、分析、处理、保存等操作,主要特征包含:Volume(大量)、Velocity(时效性)、Variety(多样性)、Value(低价值密度)和Veracity(真实性)等;大数据解决了商业智能无法处理的非结构化与半结构化数据;
++++[空间复杂度]:所谓“空间复杂度”,是一种以概量方式来衡量所需要的内存空间;而这些所需要的内存空间,通常可以分为“固定空间内存”(包括基本程序代码、常数、变量等)与“变动空间内存”(随程序或进行时而改变大小的使用空间,如引用类型变量);由于计算机硬件的发展及所使用计算机的不同,所以纯粹从程序(或算法)的效率来看,应该以算法的运行时间为主要评估与分析依据;
++++[时间复杂度]:程序设计师可以就某个算法的执行步骤计数来衡量运行时间;可以利用一种“概量”的概念来衡量运行时间,我们称之为“时间复杂度”(Time Complexity);在一个完全理想状态下的计算机中,我们定义T(n)来表示程序执行所需花费的时间,其中n代表数据输入量;当然程序的运行时间(Worse Case Executing Time)或最大运行时间是时间复杂度的衡量标准,一般以Big-oh表示;在分析算法的时间复杂度时,往往用函数来表示它的成长率(Rate of Growth),其实时间复杂度是一种“渐近表示法”(Asymptotic Notation);
++推导大O阶:++++1、用常数1取代运行时间中的所有加法常数;++++2、在修改后的运行次数函数中,只保留最高阶项;++++3、如果最高阶项存在且不是1,则去除与这个项相乘的常数;得到的结果就是大O阶; |
|
++常用的时间复杂度所耗费的时间从小到大依次如下:++++O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n);
|
|
O(1) |
常数时间(Constant Time),表示算法的运行时间是一个常数倍; |
O(n) |
线性时间(Linear Time),表示执行的时间会随着数据集合的大小而线性增长; |
O(log2n) |
次线性事件(Sub-Linear Time),成长速度比线性时间还慢,而比常数时间还快; |
O(n^2) |
平方时间(Quadratic Time),算法的运行时间会成二次方的增长; |
O(n^3) |
立方时间(Cubic Time),算法的运行时间会成三次方的增长; |
(2^n) |
指数时间(Exponential Time),算法的运行时间会成2的n次方增长; |
O(nlog2n) |
线性乘对数时间,介于线性和二次方增长的中间模式; |
++++[正确性]:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案;
++++[可读性]:算法设计的另一目的是为了便于阅读、理解和交流;
++++[健壮性]:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果;
++++[时间效率高和存储量低]:设计算法应该尽量满足时间效率高和存储量低的需求;
++C2、数组结构 |
++++[静态数据结构(Static Data Structure)]:静态数据结构也称为“密集表(Dense List)”,它使用连续分配的内存空间(Contiguous Allocation)来存储有序表中的数据;静态数据结构是在编译时就给相关的变量分配好内存空间;在建立静态数据结构的初期,必须事先声明最大可能要占用的固定内存空间,因此容易造成内存的浪费,例如数组类型就是一种典型的静态数据结构;优点是设计时相当简单,而且读取与修改表中任意一个元素的时间都是固定的;缺点则是删除或加入数据时,需要移动大量的数据;
++++[动态数据结构(Dynamic Data Structure)]:动态数据结构又称为“链表(Linked List)”,它使用不连续的内存空间存储具有线性表特性的数据;优点是数据的插入或删除都相当方便,不需要移动大量数据;另外,因为动态数据结构的内存分配是在程序执行时才进行分配的,所以不需要事先声明,这样能充分节省内存;缺点是在设计数据结构时比较麻烦,而且在查找数据时,也无法像静态数据一样随机读取,必须按顺序找到该数据为止;
++在不同的程序设计语言中,数组结构类型的声明也有所差异,不过通常必须包含以下5种属性:++++1、起始地址:表示数组名(或数组第一个元素)所在内存中的起始地址;++++2、维度(Dimension):代表此数组为几维数组,如一维数组、二维数组、三维数组等;++++3、索引上下限:指元素在此数组中,内存所存储位置的上标与下标;++++4、数组元素个数:是索引上限与索引下限的差+1;++++5、数组类型:声明此类型的类型,它决定数组元素在内存所占容量的大小;++++立钻哥哥:任何程序设计语言中的数组表示法(Representation of Arrays),只要具备数组上述五种属性以及计算机内存足够的情况下,就容许n维数组的存在;通常数组的使用可以分为一维数组、二维数组和多维数组等等,其基本的工作原理都相同;其实,多维数组也必须在一维的物理内存中来表示,因为内存地址是按线性顺序递增的; |
++++[一维数组]:在C#语言中,一维数组的声明方式:数据类型[] 数据名 = new 数据类型[元素个数];;
++++[二维数组(Two-dimension Array)]:二维数组可视为一维数组的扩展,都是用于处理数据类型相同的数据,差别只在于维数的声明;
++++[三维数组(Three-dimension Array)]:基本上三维数组的表示法和二维数组一样,都可视为是一维数组的延伸;
++++[n维数组]:三维以上的数组归纳为n维数组;
++++[深度学习(Deep Learning, DL)]:是目前人工智能得以快速发展的原因之一,源自于人工神经网络(Artificial Neural Network)模型,并且结合了神经网络架构与大量的运算资源,目的在于让机器建立与模拟人脑进行学习的神经网络,以解读大数据中的图像、声音和文字等多种信息;由于神经网络是将权重存储在矩阵中,矩阵可以是多维,以便考虑各种参数的组合,当然就会牵涉到“矩阵”的大量运算;
++++[矩阵相加]:矩阵的相加运算较为简单,前提是相加的两个矩阵对应的行数与列数都必须相等,而相加后矩阵的行数与列数也是相同的;
++++[矩阵相乘]:两个矩阵A与B的相乘受到某些条件的限制;首先,必须符合A为一个m*n的矩阵,B为一个n*p的矩阵,对A*B之后的结果为一个m*p的矩阵C;
++++[转置矩阵]:“转置矩阵”就是把原矩阵的行坐标元素与列坐标元素相互调换;
++++[稀疏矩阵]:如果一个矩阵中的大部分元素为零的话,被称为稀疏矩阵;对于稀疏矩阵而言,实际存储的数据项很少,如果在计算机中使用传统的二维数组方式来存储稀疏矩阵,就会非常浪费计算机的内存空间;为提高内存空间利用率的方法就是利用三项式(3-tuple)的数据结构,我们把每一个非零项以(i, j, item-value)来表示,就是假如一个稀疏矩阵有n个非零项,那么可以利用一个A(0:n, 1:3)的二维数组来存储这些非零项,把这种存储的矩阵叫压缩矩阵;
++++[上三角形矩阵(Upper Triangular Matrix)]:就是一种对角线以下元素都为0的n*n矩阵;其中又可分为右上三角形矩阵(Right Upper Triangular Matrix)与左上三角形矩阵(Left Upper Triangular Matrix);由于上三角矩阵仍有许多元素为0,为了避免浪费内存空间,我们可以把三角形矩阵的二维模式,存储在一维数组中;
++++[下三角形矩阵]:与上三角形矩阵相反,下三角形矩阵就是一种对角线以上元素都为0的n*n矩阵;也可分为左下三角形矩阵(Left Lower Triangular Matrix)和右下三角形矩阵(Right Lower Triangular Matrix);
++++[带状矩阵(Band Matrix)]:是一种在应用上较为特殊且稀少的矩阵,就是在上三角形矩阵中,右上方的元素都为零,在下三角形矩阵中,左下方的元素也为零,即除了第一行与第n行有两个元素外,其余每行都具有三个元素,使得中间主轴附近的值形成类似带状的矩阵;
//立钻哥哥:“转置矩阵”就是把原矩阵的行坐标元素与列坐标元素相互调换 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using static System.Console; //导入静态类
namespace YanlzFrameworkDemo{ class MyProgram{ static void Main(string[] args){ int M, N, row, col; String strM; String strN; String tempStr;
WriteLine(“立钻哥哥:请输入[M*N]矩阵的维数”);
WriteLine(“立钻哥哥:请输入维数M:”); strM = ReadLine(); M = int.Parse(strM);
WriteLine(“立钻哥哥:请输入维数N:”); strN = ReadLine(); N = int.Parse(strN);
int[,] arrA = new int[M, N]; int[,] arrB = new int[M, N];
WriteLine(“立钻哥哥:请输入矩阵内容:”); for(row=1; row<=M; row++){ for(col=1; col<=N; col++){ Write(“a” + row + col + “=”); tempStr = ReadLine(); arrA[row-1, col-1] = int.Parse(tempStr); } }
WriteLine(“立钻哥哥:输入矩阵的内容为:\n”); for(row=1; row<=M; row++){ for(col=1; col<=N; col++){ Write(arrA[(row-1), (col-1)]); Write(‘\t’); } WriteLine(); }
//进行矩阵转置的操作 for(row=1; row<=N; row++){ for(col=1; col <= M; col++){ arrB[(row-1), (col-1)] = arrA[(col-1), (row-1)]; } }
WriteLine(“立钻哥哥:转置矩阵内容为:”); for(row=1; row<=N; row++){ for(col=1; col<=M; col++){ Write(arrB[(row-1), (col-1)]); Write(‘\t’); } WriteLine(); }
ReadKey();
} //立钻哥哥:Static void Main(string[] args){} } //立钻哥哥:Class MyProgram } //立钻哥哥:namespace YanlzFrameworkDemo{} |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using static System.Console; //导入静态类
namespace YanlzFrameworkDemo{ class MyProgram{ static int ITEMS = 6;
static void Main(string[] args){ int[] polyA = { 4, 3, 7, 0, 6, 2 }; //声明多项式A int[] polyB = { 4, 1, 5, 2, 0, 9 }; //声明多项式B
Write(“立钻哥哥:多项式A=> ”); MyPrintPoly(polyA, ITEMS); //打印输出多项式A
Write(“立钻哥哥:多项式B=> ”); MyPrintPoly(polyB, ITEMS); //打印输出多项式B
Write(“立钻哥哥:A + B => ”); MyPolySum(polyA, polyB); //多项式A+多项式B
ReadKey(); } //立钻哥哥:static void Main(){}
static void MyPrintPoly(int[] Poly, int items){ int i, MaxExp;
MaxExp = Poly[0]; for(i=1; i<=Poly[0]+1; i++){ MaxExp--;
//如果该项式为0就跳过 if(Poly[i] != 0){ if((MaxExp+1) != 0){ Write(Poly[i] + “X^” + (MaxExp+1)); }else{ Write(Poly[i]); }
if(MaxExp >= 0){ Write(‘+’); } } }
WriteLine(); } //立钻哥哥:Static void MyPrintPoly(){}
static void MyPolySum(int[] Poly1, int[] Poly2){ int i; int[] result = new int[ITEMS];
result[0] = Poly1[0]; for(i=1; i<=Poly1[0]+1; i++){ result[i] = Poly1[i] + Poly2[i]; //等幂次的系数相加 }
MyPrintPoly(result, ITEMS); } //立钻哥哥:static void MyPolySum(){}
} //立钻哥哥:class MyProgram{} } //立钻哥哥:namespace YanlzFrameworkDemo{} |
++C3、链表 |
++++【大话数据结构(C实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104242455
++++【大话数据结构(C#实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104243017
++++【大话设计模式( C# 实现)】:https://blog.csdn.net/VRunSoftYanlz/article/details/104256981
++++【游戏框架】:https://blog.csdn.net/VRunSoftYanlz/article/details/80630325
++++【C/C++函数与算法】:https://blog.csdn.net/VRunSoftYanlz/article/details/104026090
++++【设计模式简单整理】:https://blog.csdn.net/VRunSoftYanlz/article/details/79839641
++++【设计模式(精华篇)】:https://blog.csdn.net/VRunSoftYanlz/article/details/81322678
++++【C++从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/103849127
++++【Linux从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/104176967
++++【Python从入门到放弃】:https://blog.csdn.net/VRunSoftYanlz/article/details/101393069
++++【XLua教程】:https://blog.csdn.net/VRunSoftYanlz/article/details/81141502
++++【Unity Shader教程】:https://blog.csdn.net/VRunSoftYanlz/article/details/80372628
++++【SteamVR2.2.0快速入门】:https://blog.csdn.net/VRunSoftYanlz/article/details/88833579
++++【SteamVR实战之PMCore】:https://blog.csdn.net/VRunSoftYanlz/article/details/89463658
++++【Unity企业内训】:https://blog.csdn.net/VRunSoftYanlz/article/details/82634668
++++【Cocos2dx面试题】:https://blog.csdn.net/VRunSoftYanlz/article/details/78630967
++++【Unity面试题】:https://blog.csdn.net/VRunSoftYanlz/article/details/78630687
++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/
【XR游戏开发QQ群:784477094】
立钻哥哥推荐的拓展学习链接(Link_Url) |
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++虚拟现实VR资讯: https://blog.csdn.net/VRunSoftYanlz/article/details/89165846
++++HTC_VIVE开发基础:https://blog.csdn.net/VRunSoftYanlz/article/details/81989970
++++Oculus杂谈:https://blog.csdn.net/VRunSoftYanlz/article/details/82469850
++++Oculus安装使用:https://blog.csdn.net/VRunSoftYanlz/article/details/82718982
++++Unity+SteamVR=>VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88809370
++++Unity减少VR晕眩症:https://blog.csdn.net/VRunSoftYanlz/article/details/89115518
++++SteamVR简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86484254
++++SteamVR脚本功能分析:https://blog.csdn.net/VRunSoftYanlz/article/details/86531480
++++SteamVR2.0开发指南:https://blog.csdn.net/VRunSoftYanlz/article/details/86618187
++++SteamVR2.2.0开发指南:https://blog.csdn.net/VRunSoftYanlz/article/details/88784527
++++SteamVR2.2.0快速入门:https://blog.csdn.net/VRunSoftYanlz/article/details/88833579
++++SteamVR2.2.0交互系统:https://blog.csdn.net/VRunSoftYanlz/article/details/89199778
++++SteamVR2.2.0传送机制:https://blog.csdn.net/VRunSoftYanlz/article/details/89390866
++++SteamVR2.2.0教程(一):https://blog.csdn.net/VRunSoftYanlz/article/details/89324067
++++SteamVR2.2.0教程(二):https://blog.csdn.net/VRunSoftYanlz/article/details/89894097
++++SteamVR_Skeleton_Poser:https://blog.csdn.net/VRunSoftYanlz/article/details/89931725
++++SteamVR实战之PMCore:https://blog.csdn.net/VRunSoftYanlz/article/details/89463658
++++SteamVR/Extras:https://blog.csdn.net/VRunSoftYanlz/article/details/86584108
++++SteamVR/Input:https://blog.csdn.net/VRunSoftYanlz/article/details/86601950
++++OpenXR简介:https://blog.csdn.net/VRunSoftYanlz/article/details/85726365
++++VRTK杂谈:https://blog.csdn.net/VRunSoftYanlz/article/details/82562993
++++VRTK快速入门(杂谈):https://blog.csdn.net/VRunSoftYanlz/article/details/82955267
++++VRTK官方示例(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82955410
++++VRTK代码结构(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82780085
++++VRTK(SceneResources):https://blog.csdn.net/VRunSoftYanlz/article/details/82795400
++++VRTK_ControllerEvents:https://blog.csdn.net/VRunSoftYanlz/article/details/83099512
++++VRTK_InteractTouch:https://blog.csdn.net/VRunSoftYanlz/article/details/83120220
++++虚拟现实行业应用:https://blog.csdn.net/VRunSoftYanlz/article/details/88360157
++++Steam平台上的VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88960085
++++Steam平台热销VR:https://blog.csdn.net/VRunSoftYanlz/article/details/89007741
++++VR实验:以太网帧的构成:https://blog.csdn.net/VRunSoftYanlz/article/details/82598140
++++实验四:存储器扩展实验:https://blog.csdn.net/VRunSoftYanlz/article/details/87834434
++++FrameVR示例V0913:https://blog.csdn.net/VRunSoftYanlz/article/details/82808498
++++FrameVR示例V1003:https://blog.csdn.net/VRunSoftYanlz/article/details/83066516
++++SwitchMachineV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++PlaySceneManagerV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++Unity5.x用户手册:https://blog.csdn.net/VRunSoftYanlz/article/details/81712741
++++Unity面试题ABC:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++Unity面试题D:https://blog.csdn.net/VRunSoftYanlz/article/details/78630838
++++Unity面试题E:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity面试题F:https://blog.csdn.net/VRunSoftYanlz/article/details/78630945
++++Cocos2dx面试题:https://blog.csdn.net/VRunSoftYanlz/article/details/78630967
++++禅道[zentao]:https://blog.csdn.net/VRunSoftYanlz/article/details/83964057
++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818
++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502
++++Lua快速入门篇(基础概述):https://blog.csdn.net/VRunSoftYanlz/article/details/81041359
++++框架知识点:https://blog.csdn.net/VRunSoftYanlz/article/details/80862879
++++游戏框架(UI框架夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80781140
++++游戏框架(初探篇):https://blog.csdn.net/VRunSoftYanlz/article/details/80630325
++++.Net框架设计:https://blog.csdn.net/VRunSoftYanlz/article/details/87401225
++++从零开始学架构:https://blog.csdn.net/VRunSoftYanlz/article/details/88095895
++++设计模式简单整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++专题:设计模式(精华篇):https://blog.csdn.net/VRunSoftYanlz/article/details/81322678
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++Unity小游戏算法分析:https://blog.csdn.net/VRunSoftYanlz/article/details/87908365
++++Unity案例(Vehicle):https://blog.csdn.net/VRunSoftYanlz/article/details/82355876
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++PowerDesigner简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86500084
++++Unity知识点0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++Unity知识点0008:https://blog.csdn.net/VRunSoftYanlz/article/details/81153606
++++U3D_Shader编程(第一篇:快速入门篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++Unity引擎基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI综合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity网络:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++Unity资源加密:https://blog.csdn.net/VRunSoftYanlz/article/details/87644514
++++PhotonServer简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86652770
++++编写Photon游戏服务器:https://blog.csdn.net/VRunSoftYanlz/article/details/86682935
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委托:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#数据类型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++UnityAPI.Rigidbody刚体:https://blog.csdn.net/VRunSoftYanlz/article/details/81784053
++++UnityAPI.Material材质:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++UnityAPI.Android安卓:https://blog.csdn.net/VRunSoftYanlz/article/details/81843193
++++UnityAPI.AndroidJNI安卓JNI:https://blog.csdn.net/VRunSoftYanlz/article/details/81879345
++++UnityAPI.Transform变换:https://blog.csdn.net/VRunSoftYanlz/article/details/81916293
++++UnityAPI.WheelCollider轮碰撞器:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++UnityAPI.Resources资源:https://blog.csdn.net/VRunSoftYanlz/article/details/83155518
++++JSON数据结构:https://blog.csdn.net/VRunSoftYanlz/article/details/82026644
++++CocosStudio快速入门:https://blog.csdn.net/VRunSoftYanlz/article/details/82356839
++++Unity企业内训(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82634668
++++Unity企业内训(第1讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82634733
++++Unity企业内训(第2讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82861180
++++Unity企业内训(第3讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82927699
++++Unity企业内训(第4讲):https://blog.csdn.net/VRunSoftYanlz/article/details/83479776
++++Unity企业内训(第5讲):https://blog.csdn.net/VRunSoftYanlz/article/details/83963811
++++Unity企业内训(第6讲):https://blog.csdn.net/VRunSoftYanlz/article/details/84207696
++++钻哥带您了解产品原型:https://blog.csdn.net/VRunSoftYanlz/article/details/87303828
++++插件
++++计算机组成原理(教材篇):https://blog.csdn.net/VRunSoftYanlz/article/details/82719129
++++5G接入:云计算和雾计算:https://blog.csdn.net/VRunSoftYanlz/article/details/88372718
++++云计算通俗讲义:https://blog.csdn.net/VRunSoftYanlz/article/details/88652803
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft:lovezuanzuan--_--