ds11.zip - 模式匹配
由用户输入主串s和模式串t,对s和t进行模式匹配。若匹配成功,返回模式串在主串中第一次出现的起始位置(下标),编号从0开始;反之,返回-1。
注:使用KMP算法
,2014-05-11 19:28:13,下载1次
ds10.zip -
串的基本操作
设串中元素为字符型数据,编写函数实现以下操作:
(1)求子串:给定一个字符串s,求其中从指定位置start开始的,长度为len的子串,并返回。例如:s = abcdefg ,start = 2,len = 3,则截取的子串为 cde 。
(2)删除子串:给定字符串s,从第pos位开始,删除长度为len的子串。例如:s = abcdefg ,start = 2,len = 3,则删除后,s变为为 abfg 。
(3)插入子串:给定两个字符串s1和s2,及指定位置pos,将s2插入到s1的第pos之后。例如:s1 = abcdefg ,s2 = xyz ,pos=3,插入完成后,s1变为 abcdxyzefg 。
(4)串置换:给定字符串s1和s2,及指定位置pos,将s1中从第pos位开始的一段子串(长度与s2相等)用s2替换。例如:s1 = abcdefg ,s2 = xyz ,pos=3,插入完成后,s1变为 abcxyzg 。
,2014-05-11 19:26:43,下载1次
ds8.zip - 符号平衡问题
在语言中往往需要判断一些符号是否是成对出现的,比如{}、[]、()。如何让判断符号的对称也是很多语言的语法检查的首要任务。
设计一个函数来检查表达式中的符号()、[]、{}是否平衡。若平衡,返回1;若不平衡返回0。
例如:
a(dda){[dfsafd[dfsd]](((fdsd)dfd))dfd}是符号平衡的。
{ad[x(df)ds)]}不是符号平衡的。
,2014-05-11 19:23:10,下载1次
ds7.zip - 循环队列的创建与操作
设循环队列中元素的数据类型为整型,编写函数实现以下操作:
(1)循环队列的初始化
(2)循环队列的入栈
(3)循环队列的出栈
(4)取循环队列的栈顶元素
(5)循环队列的输出(从栈顶到栈底)
,2014-05-11 19:21:53,下载3次
ds3.zip - 单向链表的创建与操作
设单向链表中节点的数据域的数据类型为整型,编写函数实现以下操作:
(1)实现单向链表的创建(包括初始化)与输出操作,节点的个数及节点的数据由用户输入。
(源代码:ds3-1.c)
(2)查找给定的单链表中的第i个节点,并将其地址返回。若不存在第i个节点,则返回空地址。
(源代码:ds3-2.c)
(3)查找给定的单链表中值为n的节点,并将其地址返回。若不存在值为n的节点,则返回空地址。同时,还应通过参数传回该节点的序号。
(源代码:ds3-3.c)
(4)删除给定的单链表中的第i个节点,成功返回1,失败返回0。
(源代码:ds3-4.c)
(5)删除给定的单链表中值为n的节点,成功返回1,失败返回0。
(源代码:ds3-5.c)
(6)在给定的单链表的第i位上插入值为n的节点。
(源代码:ds3-6.c)
(7)在给定单链表的值为m的节点的前面插入一个值为n的节点。
(源代码:ds3-7.c)
,2014-05-11 19:19:41,下载4次
ds1.zip - 建立一张顺序存储结构的线性表(顺序表),表中数据元素为整型数,能够存储的最大元素数量为50。在该顺序表上依次完成以下操作:
(1)判定线性表是否为空。
(2)依次在顺序表尾部(第n+1位,n位线性表长度)插入数据元素:15、207、36、79、21、97、652、109、66、81,然后输出整张线性表(依次输出所有元素)。
(3)删除第5个元素,然后输出整张线性表。
(4)在线性表的第3位插入数据92,然后输出整张线性表。
(5)在线性表中查找值为79的元素,如果存在输出它是第几位,不存在输出提示信息。
(6)线性表中查找值为31的元素,如果存在输出它是第几位,不存在输出提示信息。
(7)查找线性表中,值为652的元素的前驱元素以及后继元素的值。
,2014-05-11 19:16:52,下载3次