数据结构
吃葡萄不吐葡萄皮丿
这个作者很懒,什么都没留下…
展开
-
C:链表的操作(一),如何创建一个链表
链表是一种常见的重要的数据结构,它是动态的进行内存存储分配的一种结构。用数组存放数据时,必须事先定义固定的长度(即元素个数),但是事先难以确定有多少个元素时,则必须把数组定义的足够大,以保证成功。无疑,这会造成内存浪费,然而,链表则没有这种缺点,它可以根据需要,动态开辟内存单元。链表中的各个元素在内存中是可以不是连续存放的,但是要找到某一元素,必须知道它的地址,这就需要链表原创 2013-07-17 15:57:44 · 1461 阅读 · 0 评论 -
链式线性表的插入与删除
描述删除链式线性表指定位置的元素。输入第一行为自然数n,表示链式线性表的长度,第二行为n个自然数表示链式线性表各元素值。第三行为指定删除的位置,第四行为插入的位置及元素值(如果位置不对,则不作操作,插入位置应在删除元素后重新计数)。输出输出删除与插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。样例输入51 2 3 4 5原创 2013-08-05 20:16:14 · 2832 阅读 · 0 评论 -
数据结构-Hanoi塔问题
描述设A、B、C是3 个塔座。开始时,在塔座A 上有一叠共n 个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,……,n,如图所示。现要求将塔座A 上的这一叠圆盘移到塔座B 上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:规则(1):每次只能移动1 个圆盘;规则(2):任何时刻都不允许将较大的圆盘压在较小的圆盘之上;规则(3):在满足移动原创 2013-08-05 20:23:24 · 2254 阅读 · 1 评论 -
数据结构-用链表函数实现链表节点的插入
描述链表节点的插入操作是线性表数据结构对象操作的重要内容,请您写一个程序完成用链表函数对一个链表某一个节点的插入操作。请用如下函数完成上述功能,线性表List的定义如下(强烈建议使用下面的定义和函数结构)typedef struct LNode{ElemType data;struct LNode *next;}*Link,*Positi原创 2013-08-05 20:24:36 · 3070 阅读 · 0 评论 -
Oil Deposits
这题目相对来说还算是比较简单,深搜......描述The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and原创 2013-08-06 20:29:45 · 940 阅读 · 0 评论 -
VIJOS-P1132(求先序遍历,已知中后)
已知中后遍历,求先序遍历原创 2013-10-03 22:05:40 · 1214 阅读 · 0 评论 -
数据结构 整理笔记
数据结构 整理笔记原创 2013-10-14 16:09:12 · 1138 阅读 · 0 评论 -
Kmp求next的值(下标从0开始的)
Kmp求next的值(下标从0开始的)原创 2013-10-25 10:24:21 · 2493 阅读 · 0 评论 -
KMP 求next的值(下标从一开始的)
KMP 求next的值(下标从一开始的)原创 2013-10-25 10:38:25 · 1390 阅读 · 0 评论 -
AC自动机
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算法。原创 2013-11-17 15:23:28 · 1043 阅读 · 0 评论 -
数据结构练习题---合并表 (顺序表)
描述已知va和vb分别为非递减有序线性表,将va和vb进行合并为新的线性表vc,并保持vc仍然非递减有序。本题中,线性表元素为整数。线性表的最大长度为1000。输入输入数据有多组,第一行为测试数据的组数n,接下来为2n行,每一组测试数据有两行:第一行的第一个数为va的元素个数,后面是n个整数,代表va的所有元素第二行的第一个数为vb的原创 2013-07-26 10:00:27 · 2200 阅读 · 0 评论 -
数据结构-字符串查找
数据结构-字符串查找原创 2013-12-17 12:52:44 · 1290 阅读 · 0 评论 -
二叉排序树的创建与使用
根据大家的意见,从这个题目开始,以后都会简单注释,这样更方便大家阅读,如果还有什么不懂的地方,可以留言!描述二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有的结点值均小于它的根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;(3)它的左右子树也分别为二叉排序树。现要求根据输入的元素值,构造一棵二叉原创 2013-08-05 20:53:41 · 1247 阅读 · 0 评论 -
数据结构-用链表函数实现链表的有序合并
描述链表的合并操作是链表数据结构对象操作的重要内容,请您写一个程序使用链表函数完成对两个链表的合并操作。请用如下函数完成上述功能,线性表List的定义如下(强烈建议使用下面的定义和函数结构)typedef struct LNode{Elemtype data;struct LNode *next;}LNode,*LinkList;原创 2013-08-05 20:27:38 · 1572 阅读 · 0 评论 -
C:链表的操作(二),如何输出一个链表
废话不说,直接跟上以前的代码,写出打印函数来。void print(struct student *head){struct student *p;printf(“\n these %d records are:\n”,n);p = head;if(head != NULL)do{printf(“%ld %f\n”,p->num,p->score);p原创 2013-07-17 15:59:16 · 2641 阅读 · 0 评论 -
数据结构有什么用
数据结构对于从事计算机系统软件和应用软件设计与开发人员非常重要。程序设计语言为数据结构的描述提供了很好的手段,数据结构为程序设计语言类型系统的发展与完善奠定了基础。以下是在网上摘录的对数据结构的种种看法:1、程序=数据结构+算法2、数据结构,总的来说,就是你编程的基本功!我是这么理解的。现在社会上多的是基本工不扎实的程序员,盲目追风,今天C#,明天JAVA。而开发工原创 2013-07-25 19:10:29 · 1442 阅读 · 0 评论 -
行编辑程序(数据结构之栈一)
描述如果遇到‘#’,表示后退一格,即前一字符无效,如果遇到@,表示前一单词无效,即退出到空格或所在行头为止。采用栈实现。输入输入包含若干行,由各种字符构成。输出利用描述规则输出最后的文本内容。样例输入whli##ilr#e(s# *s) outcha@putchar( *s =# ++)样例输出原创 2013-08-01 21:16:51 · 2463 阅读 · 0 评论 -
括号匹配的检验(数据结构之栈 二)
描述采用栈实现,练习进栈入栈函数的编写.输入输入的第一行包含一个数,nn表示要用例的个数接下来是n行由括号构成的字符串,包含‘(’、‘)’、‘[’、‘]’。输出对每一测试用例,用一行输出结果,如果匹配,输出“YES”,否则输出“NO”样例输入2[([][]())])[]()样例输原创 2013-08-01 21:19:37 · 1521 阅读 · 0 评论 -
数据结构练习题---后序遍历二叉树
描述给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个..原创 2013-08-03 14:17:53 · 2172 阅读 · 0 评论 -
数据结构之循环队列
描述根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成。输入输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。第二行为操作次k,接下来k行原创 2013-08-02 14:59:19 · 2878 阅读 · 4 评论 -
数据结构 模式匹配(KMP)
描述求一个字符串在另一个字符串中的位置,称为模式匹配,如果匹配成功,则输出第一次匹配成功的位置,否则输出0。KMP算法是一种高效的模式匹配算法。要求采用KMP算法完成该题目。输入输入包今含若干个测试用例,每个测试用例占两行,其中第一行为目标字符串,第二行为模式串。输出对每个测试用例,用两行输出,其中第一行输出该用例的模式串的各字符的next值,第二行输出原创 2013-08-03 13:55:47 · 1120 阅读 · 0 评论 -
数据结构练习题---先序遍历二叉树
描述给定一颗二叉树,要求输出二叉树的深度以及先序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有原创 2013-08-03 14:17:06 · 2742 阅读 · 0 评论 -
数据结构《遍历问题》
描述已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及某一种遍历,要求输出另一种遍历。输入输入包括若干个测试用例,第一行为一个自然数n,表示用例个数,接下来4n行,即每个用例占4行,其中第一行表示第一种遍历方式,第二行为第一种遍历结果,第三行为第二种遍历方式原创 2013-08-04 20:48:55 · 1008 阅读 · 0 评论 -
成绩统计(顺序线性表)
描述根据输入统计学生的平均分及各科平均分。输入第一行为学生的个数n及课程数m,第二行至m+1行为课程名,接下来为各学生的姓名及成绩,每个学生的信息占两行,第一行为学生的姓名,第二行为m个实数,表示学生各科成绩。输出输出包含2n+2m行,前2n行为学生的平均分,其中第一行为学生姓名,第二行为该生的平均分,后2m行为各原创 2013-08-05 20:12:32 · 1597 阅读 · 0 评论 -
合并线性表
描述已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。输入输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度,第二行为n个自然数构成的非递减顺序线性表,第三行为自然数m,表示第二个非递减顺序线性表的长度,第四行为m个自然数构成的非递减顺序线性表。输出用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。样例输入原创 2013-08-05 20:14:45 · 1779 阅读 · 0 评论 -
图的广度优先搜索
图的广度优先搜索原创 2013-12-17 14:06:38 · 1240 阅读 · 0 评论