![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
用C++函数编写一个算法,比较两个整数a和b的大小,对于a≥b,a=b,a 这三种不同情况应分别返回“>”,“=”和“<”字符。并求其时间复杂度。
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
串
实验目的:
(1)掌握串的顺序和链接存储结构的实现方法。
(2)掌握串的模式匹配算法。
(3)掌握和理解本实验中出现的一些基本的C语言语句。
(4)体会算法在程序设计中的重要性。
实验内容:
(1)设计串的模式匹配算法(子串定位)。
(2)若s和t是两个采用顺序结构存储的串,编写一个比较两个串大小的算法,若s>t,则返回1,若s<t,则返回-1,否则返回0。
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:
指针
1.实验目的
①通过实验进一步掌握指针的概念,会定义和使用指针变量。
②能正确使用数组的指针和指向数组的指针变量。
③能正确使用字符串的指针和指向字符串的指针变量。
④能正确使用指向函数的指针变量。
⑤了解指向指针的概念及其使用方法。
2.实验内容
编程序并上机调试运行程序(都要求用指针处理)。
①输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
②有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
③有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
④编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数求1/1+1/3+…+1/n(利用指针函数)。
算法的主要思路是:被处理事件的数目限定在100以内,并用宏MAXSIZE来表示。函数enter()用来输入事件,调用函数Add_Queue()将事件字符串指针保存到事件队列中;函数review()用来显示还没有处理的事件;函数delete()将处理完毕的事件从事件队列中删除,并释放事件内容的存储空间,其中删除事件调用函数Del Queue()完成。下面只介绍了循环队列实现的算法,还可以采用链队列实现。这种方法作为实验内容,请读者自己设计。将循环队列的基本操作写在头文件“seqqueue.h”中。具体算法实现如下。