摘要:
一.线性表的查找 1.顺序查找 顺序查找是从表的一段开始,依次将记录的关键字和给定的值进行比较,若某个记录的关键字和给定的值相同,则查找成功,反之,若扫描整个表之后,还未发现关键字和给定值 相等的记录,则查找失败。 书中给了两个算法。 7.1 第二个算法是第一个的改进,去掉了每次循环都要对i>=0的 阅读全文
摘要:
在本章的学习中,我学习了图的概念和一些操作。 图的储存结构:邻接矩阵 邻接表 还有基于邻接表的十字链表和邻接多重表。 1.邻接矩阵的优势在于构造简单,方便操作,易于判断两个顶点间是否存在边,即通过A[i][j]=0/1。 但是缺点也很明显,当数据量巨大且出现系数矩阵时,邻接矩阵就会浪费大量空间,也不 阅读全文
摘要:
第五章主要学习的是树与二叉树,二叉树是本章的重点,其他树可以通过兄弟孩子表示法转化成二叉树。 二叉树结构特殊,每个节点的结构相似,所以在解决实际问题中,很多关于二叉树的问题都可通过递归 的方法很简单的解决。 比如 树的同构问题。 输入格式: 输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一 阅读全文
摘要:
1.主串与模式串的模式匹配 这里讲了两种方法,bp暴力匹配和kmp算法。 想要理解kmp算法,就一定要弄懂kmp的核心,最长前后缀数组的求法。这里直接上代码。 void prefix_table(string a,int prefix[],int n){ prefix[0]=0; int len=0 阅读全文
摘要:
第三章主要学习了栈和队列的表示以及基本操作,栈和队列都是操作受限的表,栈的特点是先进先后出,队列是先进先出,在栈与递归中,我学习到递归算法虽然结构清晰可读性强算法简单,但时间和空间复杂度都很大,所以好的方式是用迭代。循环队列:使用循环队列可以避免假溢出的问题,rear=(rear+1)%MAXSIZ 阅读全文
摘要:
在数据结构第二章的学习内容主要是顺序表和链表的创建及其基本操作,还有算法的时间和空间复杂度的问题,感觉上课的效果还是挺好的,但到了写代码时老是会有各种各样的问题,特别时在链表上,在作业链表的建立和遍历里,输入的函数里要用指针p尾指针r,一开始还以为是默认的,一运行出错才发现要自己定义。对链表不熟悉, 阅读全文