1>d:\调试\数据结构实验二\数据结构实验二\数据结构实验二.cpp(123): fatal error C1075: 与左侧的 大括号“{”(位于“d:\调

baoshengbin 2015-06-11 05:36:36
// 数据结构实验二.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
template <class Type>class Stack
{
private:
int top;//顶层
Type *emements;//指向栈的指针
int MaxSize;//栈的大小
public:
Stack(int maxsize=20);
~Stack();
void InitStack();
void Push(const Type &item);//进栈
Type Pop(Stack<Type>&stack); //出栈
void MakeEmpty();//置空栈
void IsEmpty();//栈空
void IsFull();//栈满
Type GetTop(Stack<Type>&stack);//得到栈顶元素
};
template <class Type>Stack<Type>::Stack(int maxsize)
{
top=-1;
MaxSize=maxsize;
elements=new Type[MaxSize];
assert(elements!=0);//断言分配空间不为空
}
template <class Type>Stack<Type>::~Stack()
{
delete [] elements;
assert(elements=0);//断言分配空间为空,此时删除栈
}
template <class Type> void Stack<Type>::IsFull()
{
top=MaxSize-1;
}
template <class Type> void Stack<Type>::IsEmpty()
{
top=-1;
}
template <class Type> void Stack<Type>::MakeEmpty()
{
top=-1;
}
template <class Type> void Stack<Type>::Push ( const Type & item )
{
assert(!IsFull());//断言栈没满
element[++top]=item;//顶指针上移一位
}
template <class Type> Type Stack<Type>::Pop (Stack<Type>&stack)
{
assert(!stack.IsEmpty());//断言栈不为空
return element[top--]; //删除栈顶元素
}
template <class Type> Type stack<Type>::GetTop (Stack<Type>&stack )
{
assert ( !stack.IsEmpty () ); //先决条件断言
return elements[top]; //取出栈顶元素
}
template <class Type> void Stack<Type>::InitStack( )
{
for(int i=0;i<top;i++)
{
cin>>element[i];
}
}

#include <assert.h>//用assert命令断言
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int maxsize;
cout<<"栈的大小:";
cin>>maxsize;
cout<<endl;
Stack<int>stack(maxsize);
stack.InitStack();
cout<<"1,进栈 2,出栈 3,查看栈顶值 4,清空栈 5,退出"<<endl;
int operation;
cout<<"请输入操作:";
cin>>operation;
switch(operation)
{
case 1:
{
int item;
cout<<"输入进栈元素"<<endl;
stack.Push(item);
break;
}

case 2:
{
stack.Pop(stack);
break;
}

case 3:
{
stack.GetTop(stack);
break;
}

case 4:
{
stack.MakeEmpty();
break;
}

case 5:{
exit(1);
break;
}

default:
{
cout<<"输入错误!!!此程序将退出!!!"<<endl;
exit(0);
break;
}
}
}


...全文
364 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏叔叔 2015-06-11
  • 打赏
  • 举报
回复
修改如下:

#include <assert.h>//用assert命令断言
#include<iostream>
using namespace std;
template <class Type>
class Stack
{
private:
	int top;//顶层
	Type *elements;//指向栈的指针
	int MaxSize;//栈的大小
public:
	Stack(int maxsize = 20);
	~Stack();
	void InitStack();
	void Push(const Type &item);//进栈
	Type Pop(Stack<Type>&stack); //出栈
	void MakeEmpty();//置空栈
	bool IsEmpty();//栈空
	bool  IsFull();//栈满
	Type GetTop(Stack<Type>&stack);//得到栈顶元素
};
template <class Type>
Stack<Type>::Stack(int maxsize)
{
	top = -1;
	MaxSize = maxsize;
	elements = new Type[MaxSize];
	assert(elements != 0);//断言分配空间不为空
}
template <class Type>
Stack<Type>::~Stack()
{
	delete[] elements;
	elements = NULL;
	assert(elements == 0);//断言分配空间为空,此时删除栈
}
template <class Type>
bool Stack<Type>::IsFull()
{
	return top == MaxSize - 1;
}
template <class Type>
bool Stack<Type>::IsEmpty()
{
	return top == -1;
}
template <class Type>
void Stack<Type>::MakeEmpty()
{
	top = -1;
}
template <class Type>
void Stack<Type>::Push(const Type & item)
{
	assert(!IsFull());//断言栈没满
	elements[++top] = item;//顶指针上移一位 
}
template <class Type>
Type Stack<Type>::Pop(Stack<Type>&stack)
{
	assert(!stack.IsEmpty());//断言栈不为空
	return elements[top--]; //删除栈顶元素
}
template <class Type>
Type Stack<Type>::GetTop(Stack<Type>&stack)
{
	assert(!stack.IsEmpty());	//先决条件断言
	return elements[top];         //取出栈顶元素
}
template <class Type>
void Stack<Type>::InitStack()
{
	for (int i = 0; i < top; i++)
	{
		cin >> elements[i];
	}
}
int main()
{
	int maxsize;
	cout << "栈的大小:";
	cin >> maxsize;
	cout << endl;
	Stack<int>stack(maxsize);
	stack.InitStack();
	cout << "1,进栈  2,出栈  3,查看栈顶值  4,清空栈  5,退出" << endl;
	int operation;
	cout << "请输入操作:";
	cin >> operation;
	switch (operation)
	{
		case 1:
		{
			int item;
			cout << "输入进栈元素" << endl;
			cin >> item;
			stack.Push(item);
			break;
		}

		case 2:
		{
			stack.Pop(stack);
			break;
		}

		case 3:
		{
			stack.GetTop(stack);
			break;
		}

		case 4:
		{
			stack.MakeEmpty();
			break;
		}

		case 5: 
		{
			exit(1);
			break;
		}

		default:
		{
			cout << "输入错误!!!此程序将退出!!!" << endl;
			exit(0);
			break;
		}
	}
	return 0;
}
mxway 2015-06-11
  • 打赏
  • 举报
回复
template <class Type> Type stack<Type>::GetTop (Stack<Type>&stack )
{
	assert ( !stack.IsEmpty () );	//先决条件断言
	return elements[top];         //取出栈顶元素
}
修改成 template <class Type> Type Stack<Type>::GetTop (Stack<Type>&stack ) { assert ( !stack.IsEmpty () ); //先决条件断言 return elements[top]; //取出栈顶元素 }

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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