简单线性数据结构:栈和队列的实现

相信很多人刚开始学习编程语言时,会经常听到栈、队列之类的名词,却不知道这是什么,我也是。但这不是本文的重点,重点是简单的栈和队列的实现。

看过很多网上将这些的文章,代码却非常复杂,不利于初学者去理解这是干什么的,因此我以一个初学者的角度去实现最简单的栈和队列,应该会容易理解。


栈和队列的实现是依赖编程语言特性本身的,比如用C++的话,就可以用结构体或者类来实现。不是本身就存在的奇奇怪怪的东西。(这是我初学时的困惑)


直接上代码:(假设看文章的人知道基本原理)
栈:

//这是充满坑的代码,很多因素没有考虑到,仅用于初学者理解
class Stack{
	private:
		int len;
		int *arr;
	public:
		Stack() {
			len = 0;
			arr = new int[1000];
		}
		//插入
		void push(int num) {
			arr[len++] = num;
		}
		//弹出
		void pop() {
			len--;
		}
		//显示顶部的元素
		int top() {
			return arr[len - 1];
		}
		//判断栈是否为空
		bool empty() {
			return len == 0;
		}
		//清空栈
		void empty() {
			len = 0;
		}
};


队列:

//这是充满坑的代码,很多因素没有考虑到,仅用于初学者理解
//比如,删除其实仅仅对head和tail操作,数据还在。
	private:
		int *arr;
		int head, tail;
	public:
		Quene() {
			head = tail = 0;
			arr = new int[1000];
		}
		void enQuene(int num) {
			arr[tail++] = num;
		}
		void deQuene() {
			head++;
		}
		int front() {
			return arr[head];
		}
		bool empty() {
			return head - tail == 0;
		}
		void clear() {
			head = tail = 0;
		}
};



你可能感兴趣的:(数据结构,C++)