文档介绍:精选数据结构实验报告二(栈、队列与杨辉三角)
?数据结构?
实验报告
工程名称 栈、队列与杨辉三角
专业班级 软件工
{
if(size >= capacity)//如果满足进行指针的更换
{
T *old = elements;
capacity = size + 1;
elements = new T[capacity];
for(int i = 0; i < size; i++)elements[i] = old[i];
delete old;
}
}
template<typename T>
void Stack<T>::push(T value)
{
ensureCapacity();//入栈前进行栈是否溢出的判断
elements[size++] = value;
}
template<typename T>
T Stack<T>::pop()
{
return elements[--size];
}
template<typename T>
int Stack<T>::getSize()
{
return size;
}
#endif
*************************************
*************************************
#include<iostream>
#include""
using namespace std;
int main()
{
Stack<int> intS;
cout << "before push size of intStack is: " << () << endl;//统计入栈前栈的大小
for(int i = 0; i < 10; i++)
{
int num;
cout << "enter num: ";
cin >> num;
(num);
}
cout << "now size of intStack is: " << () << endl;//统计入栈后栈的大小
while(!())
{
cout << () << " out " << endl;
}
cout << "after pop size of intStack is: " << () << endl;//出站后栈的大小
system("pause");
return 0;
}
##################################################
(2)队列
******************************************
#ifndef LINKEDLIST_H
#define LINKEDLIST_H
#include<stdexcept>
using namespace std;
template<typename T>class Queue;//前视定义,否那么无法友元
template<typename T>
class Node
{
public :
T element;//节点数据域
Node<T> *next;//指向下指针
Node()
{
next = NULL;
}
Node(T element)
{
this -> element = element;
next = NULL;
}
};
template<typename T>
class LinkedList
{
public:
LinkedList();
T removeFirst();//移除并返回表头元素
void addLast(T element);//尾端插入新元素
int getSize();//获取表的大小
private:
Node<T> *head, *tail;//定义头节点、尾节点
int size;
};
template<typename T>
LinkedList<T>::Linked