摘要: 矩阵的转置实际上就是将数据元素的行标和列标互换,即 T(i,j) = M(j,i) 。例如: 图1 矩阵的转置 相应地,三元组表转变为: 图2 三元组表 矩阵的转置,经历了三个步骤: 矩阵的行数 n 和列数 m 的值交换; 将三元组中的i和j调换; 转换之后的表同样按照行序(置换前的列序)为主序,进 阅读全文
posted @ 2018-05-14 15:03 程序员进阶笔记 阅读(18204) 评论(0) 推荐(1)
摘要: 如果矩阵中有很多数值相同的数据元素,在存储时,可以考虑对其进行适当的压缩存储。 有必要压缩存储的矩阵大致分为两大类: 矩阵中含有大量的相同数值,称为特殊矩阵(例如对称矩阵和上下三角矩阵)。 矩阵中只有极少量的元素是非 0 元素,称为稀疏矩阵。 两类矩阵压缩存储的方法: 特殊矩阵中,对于相同的数据元素 阅读全文
posted @ 2018-05-14 13:45 程序员进阶笔记 阅读(4129) 评论(0) 推荐(0)
摘要: 数组,所有的程序设计语言学习之初都有它的身影。根据数组中存储的数据元素之间的逻辑关系,可以将数组分为 : 一维数组、二维数组、…、n维数组。 n维数组中,维数 n 的判断依据是:根据数组中为确定元素所在位置使用的最少的下标个数。例如,二维数组中想唯一确定一个元素的位置,至少需要使用 2 个下标, a[1][1]代表二维数组中行坐标为 1,列坐标为 1 的数据元素的值。 数组VS顺序表 数组和顺... 阅读全文
posted @ 2018-05-14 13:41 程序员进阶笔记 阅读(1902) 评论(0) 推荐(0)
摘要: 本章主要介绍了数组和广义表的相关知识。数组章节,重点理解矩阵压缩存储的方式,在此基础上,学习矩阵的转置、乘法、和加法运算的实现;学习广义表时重点理解用递归的思想求广义表的深度和复制广义表。 本章内容: 1. 数据结构之多维数组 2. 矩阵压缩存储(十字链表、三元组顺序表、行逻辑 3. 矩阵转置算法及代码实现(三元组顺序表) 4. 矩阵乘法(行逻辑链接的顺序表)及代码实现 5. 矩阵加法(基于十字... 阅读全文
posted @ 2018-05-14 12:04 程序员进阶笔记 阅读(821) 评论(0) 推荐(0)
摘要: 完整实现代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 1000 //KMP算法中的next数组 void Next(char *T, int *next){ int i=1; next[1]=0; 阅读全文
posted @ 2018-05-14 11:36 程序员进阶笔记 阅读(804) 评论(0) 推荐(0)
摘要: 通过上一节的介绍,学习了串的普通模式匹配算法,大体思路是:模式串从主串的第一个字符开始匹配,每匹配失败,主串中记录匹配进度的指针 i 都要进行 i-j+1 的回退操作(这个过程称为“指针回溯”),同时模式串向后移动一个字符的位置。一次次的循环,直到匹配成功或者程序结束。 "KMP"算法相比于"BF" 阅读全文
posted @ 2018-05-14 11:05 程序员进阶笔记 阅读(20375) 评论(4) 推荐(5)
摘要: 判断两个串之间是否存在主串与子串的关系,这个过程称为串的模式匹配。 在串的模式匹配过程,子串 T 通常被叫做“模式串”。 普通的模式匹配(“BF”算法) 判断两个串是否存在子串与主串的关系,最直接的算法就是拿着模式串,去和主串从头到尾一一比对,这就是“BF”算法的实现思想。将提供的模式串(例如 “a 阅读全文
posted @ 2018-05-13 20:21 程序员进阶笔记 阅读(1921) 评论(0) 推荐(0)
摘要: 数据结构中的字符串 字符串BF算法(普通模式匹配算法) 数据结构中提到的串,即字符串,由 n 个字符组成的一个整体( n >= 0 )。这 n 个字符可以由字母、数字或者其他字符组成。 例如,S = ”BEIJING” ,S 代表这个串的串名,BEIJING 是串的值。 双引号不是串的值,作用只是为了将串和其他结构区分开。 特殊的串 空串:含有零个字符的串。例如:S = “”(双引号中没有任... 阅读全文
posted @ 2018-05-13 19:40 程序员进阶笔记 阅读(3294) 评论(2) 推荐(0)
摘要: 字符串(数据结构中的串) 变态的停车场管理系统字符串的存储结构 本章介绍了字符串的三种存储结构,同时介绍了有关进行串的模式匹配的两种算法——普通模式匹配算法以及快速模式匹配算法。 建议读者在掌握普通模式匹配算法的基础上学习快速模式匹配算法,这样会理解地更深刻。 本章内容: 1. 数据结构中的字符串 2. BF算法(普通模式匹配算法)及C语言实现 3. KMP算法(快速模式匹配算... 阅读全文
posted @ 2018-05-13 14:12 程序员进阶笔记 阅读(615) 评论(0) 推荐(0)
摘要: 小时候在刚开始接触扑克牌的时候,最初学会的扑克游戏就是类似于“推小车”这样的无脑游戏,本节带领大家使用学过的知识编写推小车卡牌游戏。 “推小车”扑克牌游戏适合 2-3 个人玩,游戏规则也超级简单:将一副扑克牌平均分成两份,每人拿一份,每个人手中的扑克牌全部反面朝上,叠成一摞。游戏进行时,每个人轮流拿 阅读全文
posted @ 2018-05-13 11:27 程序员进阶笔记 阅读(2396) 评论(0) 推荐(0)