⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 练习.txt

📁 钱能主编 C++程序设计教程(第一版) 该书习题的答案代码
💻 TXT
字号:
20.1
#include <iostream.h>
#include <string.h>

template<class T> T min(T a,T b)
{
	return a<b?a:b;
}

char* min(char* a,char* b)
{
	return (strcmp(a,b)<0?a:b);
}

void main()
{
	cout<<"Min(\"Hello\",\"Gold\") is "
		<<min("Hello","Gold")<<endl;
	cout<<"Min(5,75) is "
		<<min(5,75)<<endl;
}

20.2
//-------stack.prj-------//
//************************
//**      main.cpp      **
//************************
#include "stack.h"

void main()
{
	int size=100;
	Stack<int>  stack(size);
	stack.display();
	stack.Push(5);
	stack.Push(10);
	stack.display();
}
//***********************
//**      stack.h      **
//***********************
#include <iostream.h>
#include <stdlib.h>

template<class T> class Stack
{
	public:
		Stack(const int s)
		{
			SIZE=s;
			tos=0;
			stack=new T[SIZE];

			for(int i=0;i<SIZE;i++)
				stack[i]=0;
			cout<<"end construction."<<endl;
		}
		~Stack()
		{
			delete []stack;
		}
		void Push(T t);
		T Pop();
		void display()
		{
			if(tos==0)
			{
				cout<<"empty stack."<<endl;
				return;
			}
			int i=0;
			for(;i<tos;i++)
				cout<<stack[i]<<",";
			cout<<endl<<"end display."<<endl;
		}
	private:
		int SIZE;
		T* stack;
		int tos;
};

template<class T>
void Stack<T>::Push(T t)
{
	cout<<"push:"<<t<<endl;
	stack[tos]=t;
	tos++;
	if(tos>99)
	{
		cout<<"stack overflow."<<endl;
		exit(1);
	}
}

template<class T>
T Stack<T>::Pop()
{
	cout<<"pop:"<<stack[tos]<<endl;
	T temp=stack[tos];
	stack[tos]=0;
	tos--;
	if(stack<0)
	{
		cout<<"stack crash."<<endl;
		exit(1);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -