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

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

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


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


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

<span style="font-size:10px;">//这是充满坑的代码,很多因素没有考虑到,仅用于初学者理解
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;
		}
};</span>


队列:

//这是充满坑的代码,很多因素没有考虑到,仅用于初学者理解
//比如,删除其实仅仅对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;
		}
};



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值