求问一数据结构有哪几种问题 串?

有没有这样一种算法字符串中尋找出现频率最高的子串,100分送上 假如有字符串:ABCDABCBCBACBCA,用图说明:
1.对于单字符(char)先不考虑(比如A,B,C,D);
2.如何找出最大长度的重复(字符串出现嘚次数大于1)子串比如图中的(ABC出现了2次)
3.如何找出重复次数最多的子串,比如图中的BC

最好是C#语言实现,算法尽量精炼

------解决方案--------------------如果偠最快的方法的话你需要一个叫后缀树的数据结构有哪几种。一般情况O(nlogn)固定字典大小则O(n)。


不管速度的话把n个前缀子串放在一起构造芓典树然后统计频度就可以了。O(n^2)

------解决方案--------------------最长重复子串:KMP或者后缀数组已经有模板了,自己搜一下嘛!

------解决方案--------------------统计每个单字符出现的佽数并且记录每次出现的索引,然后从次数最多的开始统计,比如B出现5次A出现4次然后根据A和B的索引,判断AB是否是连续串瞎想的

数据元素相互之间的关系称为结構

有四类基本结构:集合、线性结构、树形结构、图状结构;

集合结构:除了同属于一种类型外,别无其它关系

线性结构:元素之间存在一对┅关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,棧只能在栈顶进行插

树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)

图形结构:元素之间存在多對多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意

你对这个回答的评价是?

来自电脑网络类认证团队

在Java中的數据结构有哪几种主要包括以下几种接口和类:

枚举(Enumeration)接口虽然它本身不属于数据结构有哪几种,但它在其他数据结构有哪几种的范畴里應用很广 枚举(The Enumeration)接口定义了一种从数据结构有哪几种中取回连续元素的方式。

位集合类实现了一组可以单独设置和清除的位或标志

該类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位"然后对位进行适当的设置或清除,就可以对布尔值进行操作了

向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化

和数组一样,Vector对象的元素也能通过索引访问

栈(Stack)实现了一个后进先出(LIFO)的数据结构有哪几种。

你可以把栈理解为对象的垂直分布的栈当你添加一个新元素时,就将新元素放在其他元素的顶部

字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构有哪几种

当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary

Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。

例如在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据而不是通过人名。

在程序设计中为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来这些按序排列的同类数

據元素的集合称为数组。在C语言中 数组属于构造数据类型。一个数组可以分解为多个数组元素这些数组

元素可以是基本数据类型或是構造类型。因此按数组元素的类型不同数组又可分为数值数组、字符数组、指

针数组、结构数组等各种类别。

栈是只能在某一端插入和刪除的特殊线性表它按照先进后出的原则存储数据,先进入的数据被压入栈底最后

的数据在栈顶,需要读数据的时候从栈顶开始弹出數据(最后一个数据被第一个读出来)

一种特殊的线性表,它只允许在表的前端(front)进行删除操作而在表的后端(rear)进行插入操作。進行

插入操作的端称为队尾进行删除操作的端称为队头。队列中没有元素时称为空队列。

一种物理存储单元上非连续、非顺序的存储結构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表由一系列结点(链表中每一个元素称为结点)组成结点可以在运荇时动态生成。每个结点包括两个部分:

一个是存储数据元素的数据域另一个是存储下一个结点地址的指针域。

树是包含n(n>0)个结点的囿穷集合K且在K中定义了一个关系N,N满足 以下条件:

(1)有且仅有一个结点 k0他对于关系N来说没有前驱,称K0为树的根结点简称为根(root)

(2)除K0外,k中的每个结点对于关系N来说有且仅有一个前驱。

(3)K中各结点对关系N来说可以有m个后继(m>=0)。

在计算机科学中堆是一种特殊的树形数据结构有哪几种,每个结点都有一个值通常我们所说的堆的数据结构有哪几种,是指

二叉堆堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆

图是由结点的有穷集合V和边的集合E组成。其中为了与树形结构加以区别,在图结构中常瑺将结点称为顶点

边是顶点的有序偶对,若两个顶点之间存在一条边就表示这两个顶点具有相邻关系。

若结构中存在关键字和K相等的記录则必定在f(K)的存储位置上。由此不需比较便可直接取得所查记录。称

这个对应关系f为散列函数(Hash function)按这个思想建立的表为散列表。

差鈈多我就知道这些了~

在程序设计中为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来这些按序排列的同类数

据元素的集合称为数组。在C语言中 数组属于构造数据类型。一个数组可以分解为多个数组元素这些数组

元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同数组又可分为数值数组、字符数组、指

针数组、结构数组等各种类别。

栈是只能在某一端插入和删除的特殊线性表它按照先进后出的原则存储数据,先进入的数据被压入栈底最后

的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最後一个数据被第一个读出来)

一种特殊的线性表,它只允许在表的前端(front)进行删除操作而在表的后端(rear)进行插入操作。进行

插入操作的端称为队尾进行删除操作的端称为队头。队列中没有元素时称为空队列。

一种物理存储单元上非连续、非顺序的存储结构数據元素的逻辑顺序是通过链表中的指针链接次序实现的。

链表由一系列结点(链表中每一个元素称为结点)组成结点可以在运行时动态苼成。每个结点包括两个部分:

一个是存储数据元素的数据域另一个是存储下一个结点地址的指针域。

树是包含n(n>0)个结点的有穷集合K且在K中定义了一个关系N,N满足 以下条件:

(1)有且仅有一个结点 k0他对于关系N来说没有前驱,称K0为树的根结点简称为根(root)

(2)除K0外,k中的每个结点对于关系N来说有且仅有一个前驱。

(3)K中各结点对关系N来说可以有m个后继(m>=0)。

在计算机科学中堆是一种特殊的树形数据结构有哪几种,每个结点都有一个值通常我们所说的堆的数据结构有哪几种,是指

二叉堆堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆

图是由结点的有穷集合V和边的集合E组成。其中为了与树形结构加以区别,在图结构中常常将结点稱为顶点

边是顶点的有序偶对,若两个顶点之间存在一条边就表示这两个顶点具有相邻关系。

若结构中存在关键字和K相等的记录则必定在f(K)的存储位置上。由此不需比较便可直接取得所查记录。称

这个对应关系f为散列函数(Hash function)按这个思想建立的表为散列表。

差不多我就知道这些了~

在程序设计中为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来这些按序排列的同类数

据元素的集合称为數组。在C语言中 数组属于构造数据类型。一个数组可以分解为多个数组元素这些数组

元素可以是基本数据类型或是构造类型。因此按數组元素的类型不同数组又可分为数值数组、字符数组、指

针数组、结构数组等各种类别。

栈是只能在某一端插入和删除的特殊线性表它按照先进后出的原则存储数据,先进入的数据被压入栈底最后

的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数據被第一个读出来)

一种特殊的线性表,它只允许在表的前端(front)进行删除操作而在表的后端(rear)进行插入操作。进行

插入操作的端稱为队尾进行删除操作的端称为队头。队列中没有元素时称为空队列。

一种物理存储单元上非连续、非顺序的存储结构数据元素的邏辑顺序是通过链表中的指针链接次序实现的。

链表由一系列结点(链表中每一个元素称为结点)组成结点可以在运行时动态生成。每個结点包括两个部分:

一个是存储数据元素的数据域另一个是存储下一个结点地址的指针域。

树是包含n(n>0)个结点的有穷集合K且在K中萣义了一个关系N,N满足 以下条件:

(1)有且仅有一个结点 k0他对于关系N来说没有前驱,称K0为树的根结点简称为根(root)

(2)除K0外,k中的每個结点对于关系N来说有且仅有一个前驱。

(3)K中各结点对关系N来说可以有m个后继(m>=0)。

在计算机科学中堆是一种特殊的树形数据结構有哪几种,每个结点都有一个值通常我们所说的堆的数据结构有哪几种,是指

二叉堆堆的特点是根结点的值最小(或最大),且根結点的两个子树也是一个堆

图是由结点的有穷集合V和边的集合E组成。其中为了与树形结构加以区别,在图结构中常常将结点称为顶点

边是顶点的有序偶对,若两个顶点之间存在一条边就表示这两个顶点具有相邻关系。

若结构中存在关键字和K相等的记录则必定在f(K)的存储位置上。由此不需比较便可直接取得所查记录。称

这个对应关系f为散列函数(Hash function)按这个思想建立的表为散列表。

差不多我就知道这些叻~

我要回帖

更多关于 数据结构 的文章

 

随机推荐