设单链表中存放着N个字符 写出一算法 判断该字符串是否是有中心对称关系

PPC叔叔 2006-04-22 02:44:08
设单链表中存放着N个字符 写出一算法 判断该字符串是否是有中心对称关系
...全文
1161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyfhz 2006-08-03
  • 打赏
  • 举报
回复
假如说比较的字符串是在一个Array of char里面,
那么或许可以直接用内存Copy的方法直接Copy一个反序的内存块,
然后两个内存块直接作XOR操作。最后如果有办法不循环直接就知道这个内存块是否全部为0的话,那就是O(1) 啦 :D
galois_godel 2006-08-03
  • 打赏
  • 举报
回复
怎么想都是O(n)
Ichigo 2006-08-01
  • 打赏
  • 举报
回复
先将单链遍历一遍,记录下其中元素的个数(n)
再从头遍历,边遍历边记数边存入数组,直到(n div 2)
然后,顺着单链继续遍历,并与数组比较

yyfhz 2006-08-01
  • 打赏
  • 举报
回复
遍历全表,作一个双向索引链表或者是数组
然后进行比较就快了,不用一次次的去找尾节点。这样做的话时间复杂度为O(n),但是比较费空间。
stefant2003 2006-06-08
  • 打赏
  • 举报
回复
我的思路是:
(1)先遍历链表找到中间结点, O(n)
(2)将前半部分链表逆序,O(n)
(3)从中间开始向两端作比对到不相同为止,O(n)

算法时间复杂度是O(n)
CD2006 2006-04-22
  • 打赏
  • 举报
回复
能出这样的题的老师,也真是没着了

呵呵,不断的把当前的表头结点拆下,然后顺链找到表尾,和表尾节点比较,如果相同,则删除这两个节点,并重复这个过程,直到表为空(判为中心对称)或与表尾节点不相同(判为非中心对称)
顺序存储的线性表 时数 2 性质 验证 内容:1、线性表存放在向量A[arrsize]的前elenum个分量,且递增有序。试计一算法,将x插入到线性表的适当位置上,以保持线性表的有序性。 2、用向量作存储结构,试计一个算法,仅用一个辅助结点,实现将线性表的结点循环右移k位的运算。 3、用向量作存储结构,试计一个算法,仅用一个辅助结点,实现将线性表逆置的运算。 要求:了解线性表的逻辑结构特征,熟练掌握线性表的顺序存储结构的描述方法,及在其上实现各种基本运算的方法。 单链表上的操作 时数 2 性质 验证 内容:1、已知带头结点的动态单链表L的结点是按整数值递增排序的,试写一算法将值为x的结点插入到表L,使L仍然有序。 2、计一算法,逆置带头结点的动态链表L。要求利用原表的结点空间,并要求用尽可能少的时间完成。 3、假有两个按元素值递增有序的线性表A和B,均以单链表作存储结构,试编写算法将A表和B表归并成一个按元素值递减有序的线性表C,并要求利用原表的空间存放C。 要求:熟练掌握线性表的单链式链接存储结构及在其上实现线性表的各种基本运算的方法。 循环链表和双链表 时数 2 性质 验证 内容:1、假在长度大于1的单循环链表,既无头结点也无头指针。s为指向某个结点的指针,试编写算法删除结点*s的直接前驱结点。 2、已知由单链表表示的线性表,含有三类字符的数据元素(如:字母、数字和其它字符),算法构造三个以循环链表示的线性表,使每一个表只含同一类的字符,且利用原表的结点空间作为这三个表的空间。(头结点可以另辟空间) 3、有一双链表,每个结点除有prior、data和next域外,还有一访问频度域freq,在链表被启用前,其值均初始化为零。每当在链表上进行一次LOCATE(L,x)运算,元素值为x的结点freq域的值增1,并使此链表结点保持按freq递减的顺序排列,以便使频繁访问的结点总是靠近表头。计满足上述要求的LOCATE算法。 要求:熟练掌握线性表的循环链式和双链式链接存储结构及在其上实现线性表的各种基本运算的方法。 栈和队列 时数 2 性质 验证 内容:1、单链表存放着n个字符算法判断字符串是否有心对称关系。例如:xyzzyx、xyzyx都算是心对称字符串。 2、算法判断一个算术表达式的圆括号是否配对。(提示:对表达式进行扫描,遇‘(’进栈,遇‘)’退掉栈顶的‘(’,表达式被扫描完毕,栈为空) 3、假以带头结点的循环链表表示队列,并只一个指针指向队尾,编写相应的置队空、入队和出队算法。 要求:掌握栈和队列的数据结构的特点;熟练掌握在两种存储结构上实现栈和队列的基本运算;学会利用栈和队列解决一些实际问题。 串运算的实现 时数 2 性质 验证 内容:1、若X和Y是用结点大小为1的单链表表示的串,算法找出X第一个不在Y出现的字符。 2、计一算法,在顺序串上实现串的比较运算strcmp(S,T)。 3、若S和T是用结点大小为1的单链表存储的两个串,算法将S首次与T匹配的子串逆置。 要求:熟练掌握串的顺序和链接存储结构的实现方法;熟练掌握在两种存储结构上实现串的各种运算。 树的应用 时数 2 性质 验证 内容:1、以二叉链表作存储结构,计求二叉树高度的算法。 2、一棵n个结点的完全二叉树用向量作存储结构,用非递归算法实现对该二叉树进行前序遍历。 3、以二叉链表作存储结构,编写非递归的前序、序、后序遍历算法。 要求:熟悉二叉树的各种存储结构的特点及适用范围;掌握建立二叉树的存储结构的方法;熟练掌握二叉树的前序、序、后序遍历的递归及非递归算法;灵活运用递归的遍历算法实现二叉树的其它各种运算。

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧