C++经典面试题(十)
来源:互联网 发布:java方法覆盖 编辑:程序博客网 时间:2024/06/05 00:22
最近看一些面试题,觉得如果自己被问到了,并不能很利落的回答出来。
一是从来没有这个意识,二是没有认真的梳理下。
下面对这些题做出分析,哈!个人能力有限,其中难免有疏漏,欢迎大家补充咯!
91.输入一个字符串,将其逆序后输出 。
【参考答案】
还有第二种
92.编写一个算法frequency,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数据来验证这个算法。
void frequency( String& s, char& A[ ], int& C[ ], int &k ){int i, j, len = s.length( );if ( !len ){cout << "The string is empty. " << endl;k = 0;return;}else{A[0] = s[0];C[0] = 1;k = 1; /*语句s[i]是串的重载操作*/for ( i = 1; i < len; i++ ) C[i] = 0; /*初始化*/for ( i = 1; i < len; i++ ){/*检测串中所有字符*/j = 0;while ( j < k && A[j] != s[i] ) j++; /*检查s[i]是否已在A[ ]中*/if ( j == k ){A[k] = s[i]; /*s[i]从未检测过*/C[k]++;k++}else C[j]++;/*s[i]已经检测过*/}}}
93.假设以数组Q[m]存放循环队列中的元素, 同时以rear和length分别指示环形队列中的队尾位置和队列中所含元素的个数。试给出该循环队列的队空条件和队满条件, 并写出相应的插入(enqueue)和删除(dlqueue)元素的操作。
【参考答案】循环队列类定义
#include <assert.h>template <class Type> class Queue {//循环队列的类定义public: Queue ( int=10 );~Queue ( ) { delete [ ] elements; }void EnQueue ( Type & item );Type DeQueue ( );Type GetFront ( );void MakeEmpty ( ) { length = 0; }//置空队列int IsEmpty ( ) const { return length == 0; }//判队列空否int IsFull ( ) const { return length == maxSize; }//判队列满否private:int rear, length;//队尾指针和队列长度Type *elements;//存放队列元素的数组int maxSize;//队列最大可容纳元素个数};
template <class Type>Queue<Type>:: Queue ( int sz ) : rear (maxSize-1), length (0), maxSize (sz) {//建立一个最大具有maxSize个元素的空队列。elements = new Type[maxSize];//创建队列空间 assert ( elements != 0 );//断言: 动态存储分配成功与否}template<class Type> void Queue<Type> :: EnQueue ( Type &item ) {assert ( ! IsFull ( ) );//判队列是否不满,满则出错处理length++;//长度加1rear = ( rear +1) % maxSize;//队尾位置进1elements[rear] = item;//进队列}template<class Type> Type Queue<Type> :: DeQueue ( ) {assert ( ! IsEmpty ( ) ); //判断队列是否不空,空则出错处理length--;//队列长度减1return elements[(rear-length+maxSize) % maxSize];//返回原队头元素值}template<class Type> Type Queue<Type> :: GetFront ( ) {assert ( ! IsEmpty ( ) );return elements[(rear-length+1+maxSize) % maxSize];//返回队头元素值}
未完。。。待续(*^_v_^*)
1 0
- [转载]linux C经典面试题十
- linux C经典面试题十
- linux C经典面试题十
- C++经典面试题(十)
- 经典C面试题
- C/C++面试题十
- Angularjs十大经典面试题
- C#,.Net经典面试题
- 经典C语言面试题
- 经典C/C++面试题
- 经典C/C++面试题
- 经典C/C++面试题
- 经典C/C++面试题
- 嵌入式c面试题 经典~~
- 经典C/C++面试题
- C/C++ 经典 面试题
- 经典C/c++面试题
- C、c++经典面试题
- c++中 dialog、bitmap等资源,由一个项目完全复制到另一个项目的方法
- HDU ACM 5265 pog loves szh II
- 【Oracle篇】Navicat连接Oracle数据库
- 二叉树的建立与遍历
- QImage 与 cv::Mat 之间的相互转换
- C++经典面试题(十)
- 实战黑帽seo从网站搭建到泛站快速排名
- storyboard
- 关于程序员学英语的经验
- Java基础 System类
- leetcode Basic Calculator II
- 西普CTF训练(programe部分分析)
- sizeof()和strlen()的区别
- UIImageView