数据结构第四章小结

任选本章一道题目,谈谈你解决该题的心得体会.
同时谈谈你对上次制定目标的完成情况, 以及接下来的目标.
  一.第四章主要学习了串,我觉得最重要的两个内容,一个是AI核心代码,一个是稀疏矩阵的十字链表压缩存储;AI核心代码呢,老师在课堂上讲了一部分,自己也接受了挺多的,当天我就趁热打铁在通识课上回味了一下,老师有留给我们自己完成can you 的那一部分内容,之前有一部分是you变成I,我参照着之前的自己写了一遍,但是一开始出现了错误,又重新写了好几遍,但是总是会出现warning,可能是溢出的问题,可是自己不知道应该怎么改,现在还在改,之后再去和其他人交流一下,希望今天可以完成这个任务;

第二个就是实践的稀疏矩阵的压缩。老师讲过,需要打包四个东西,行、列、数据、数组,但是后面的数组不知道该如何继续写,后来去网上找了一下,按照他的思路写了一部分,可是输出的时候行和列总是不对应,还有就是样例可以通过,普通数据过不了。可能还是方法的问题,还在修改中,今天的目标就是把这两个完成。心得体会就是一定要多实践,之前自己不会写一些基本的代码就是因为自己写的少,现在一直在练习。

  上次制定的目标一直在坚持,实现了一部分吧,接下来还要继续保持现在的态度,一如既往,还是要多练习,多实践才行。

AI:

void canYou(string s)
{
	int i = 0;string t;
	for(i = 0;t[i]=!‘\0‘; ++i)
		{
			if(t[i]==‘c‘&&t[i]==‘n‘&&(i==0||isAlone(t[i-1])&&isAlone(t[i+1])))
				{
				cout<<‘I‘;
				continue;
				}
			if(tolower(t[i])==‘y‘&&tolower(t[i+1])==‘o‘&&tolower(t[i]==‘u‘))
				{
				cout<<‘can‘;
				++i;
				continue;
				}
		}
}

  

十字链表:

int n,m,h,f,b,k,i;
    while(scanf("%d %d %d",&n,&m,&k)!=EOF)
    {
        memset(a,0,sizeof(a));
        for(i=0;i<k;i++)
        {
            scanf("%d %d %d",&h,&f,&a[i]);
        }
        scanf("%d",&b);

  

int p=0;
       for(i=0;i<k;i++)
       {
           if(a[i]==b)
           {
               p=1;break;
           }
       }
       if(p==1)cout<<h<<" "<<f;
       else printf("ERROR\n");

  还在继续改进中……

原文地址:https://www.cnblogs.com/XJWQ/p/10705914.html

时间: 2024-11-05 18:45:55

数据结构第四章小结的相关文章

数据结构第四章总结

数据结构第四章学习的是串,数组和广义表(广义表课程中没讲,问题不大) 串的定义其实在c++学习中就有所接触,所以这里不详说,  重点说的是两个串模式匹配算法 1.BF算法 BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符: 若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果.BF算法是一种蛮力算法. 2.KMP算法 KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达

数据结构第四章学习小结

第四章主要是串和数组的学习,之前对串和数组的应用仅限于对其单独处理,本章学习着重于对具体题目的实际操作,实践了串的模式匹配算法,对其有了更深入的了解,数组的应用拓展到了稀疏矩阵的存储的实现. 一.串 串的模式匹配 BF算法 首先未匹配到串尾时,将两个字符串一一匹配,可用C++自带的length()函数实现 while(i<=S.length()&&j<=T.length()) 接下来就是匹配的过程 if(S[i]==T[j]){ i++;j++; }//若匹配则继续比较下一位

【数据结构】第二章小结

ps:第一次用博客园写,记录第一次 一.数据结构第二章主要为:顺序表和链表的构造及其增删查改的一些基本操作,以及粗略计算它们的时间or空间的复杂度. 1.顺序表: (1)  特点:逻辑结构上相邻,物理存储上也是相邻的,属于随机存储: (2)  优点:便于使用下标进行查找,例如:查找某数组的第6项的数据是几: 存储密度为1: (3)    缺点:由于其物理存储相邻,故无法将空间中零零散散的碎片空间利用起来: 2.链表: (1)   特点:逻辑结构上相邻,物理存储上不一定相邻的,属于顺序存储: 单链

DS|数据结构||第五章小结

本章主要学习了树和二叉树相关知识,包括二叉树的性质和存储结构(双亲表示法.孩子表示法.孩子兄弟法),二叉树的前.中.后序遍历算法等,还了解了哈夫曼树和哈夫曼编码的构造方法,以及森林与二叉树之间的相互转换方法. 实验课老师带领我们做了“深入虎穴”这道题: 7-2 深入虎穴 (30 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…

数据结构——第四章图:01图相关定义

1.图的定义:图是一种网状数据结构,形式化定义如下:图Graph = (V, R),V = {x | x ∈ DataObject},R = {VR},VR = {<x, y> | P(x, y) ∧ (x, y ∈ V)}.集合DataObject中的所有元素具有相同的特性.V中的数据元素通常为顶点(vertex),VR是两个顶点之间关系的集合,P(x, y)表示x和y之间有特定的关系属性P. (1)若<x, y> ∈ VR,则<x, y>表示从顶点x到顶点y的一条弧

第四章小结

这一章跟之前的学的相比,对我来说显更加困难,先是KMP我还没来得及全部吃透,又来了个稀疏矩阵. 下面是我写模式匹配时的代码,我个人觉得自己最弱的部分就是主函数前的准备工作,写的不够仔细,总是有小错误,比如,没有返回值啊,符号用错啊,下标和位置区分不开. #include<iostream> #include<string.h> using namespace std ; string s; string t; int ssize; int tsize; int next1[2000

C语言数据结构——第四章 串

四.串 4.1-串的基本概念 串的定义 串是由数字.字母或其他字符组成的有限序列,一般记为 StringName = “a[0]a[1]a[2]···a[i]···a[n-1]”(n>0,0<=i<=n-1) 其中StringName是串名,双引号内的序列是该串的值,n为串的长度,i为某一字符在该串中的下标 串的常用术语 串的长度:串中包含字符个数即为串的长度 空串:串中不包含任何字符时被称为空串,此时串的长度为0 空格串:由一个或多个空格组成的串被称为空格串,它的长度是串中空格的个数

【数据结构】第四章学习小结

串.数组 在第四章中,我学到的主要是关于串与数组的内容,至于广义表,既然老师让我们课后有时间去看,那我这里就先不讲广义表了(其实只是粗略的看了一下,还没看懂) 在上学期的c++中我就已经学过有关串的一些知识,对于串还是可以很好的理解的,在数据结构中,串将被看作是一种特殊的线性表,跟线性表一样,串也有两种基本存储结构,个人觉得顺序存储结构对于串的运用比较方便,简单易懂,所以在作业题中会首先考虑使用顺序串. 串有许多很重要的应用,例如搜索引擎,数据压缩等,这些应用都离不开串的模式匹配算法(子串的定位

《数据结构与算法分析:C语言描述》复习——第四章“树”——AVL树

2014.06.15 16:22 简介: AVL树是一种高度平衡的二叉搜索树,其命名源自于联合发明算法的三位科学家的名字的首字母.此处“平衡”的定义是:任意节点的左右子树的高度相差不超过1.有了这个平衡的性质,使得AVL树的高度H总是接近log(N),因此各种增删改查的操作的复杂度能够保证在对数级别.没有bad case是AVL树与普通的二叉搜索树的最大区别.为了实现平衡性质,我们需要记录每个节点的高度(或者平衡因子)来检测不平衡的情况.为了修正高度不平衡,需要用到“旋转”的方法,分为单旋转和双