数据结构学习笔记
来源:互联网 发布:encore制谱软件 编辑:程序博客网 时间:2024/05/20 15:41
前记:我知道这些代码很简单,只是让我想起了去年大一的生活,虽然我玩了挺多的,但也确实看了不少书,不仅是技术方面的,也有文学方面(写了大约10篇左右的文章,还投了稿),经济方面的,所以我大二的生活还是相对轻松简单的,回想我过去的岁月,深深地感觉确实是一份耕耘一份收获,不管那些大牛智商有多高,哪怕你一辈子也追不上那些大神,但只要你也走在追赶他们的道路上,蓦然回首,你会发现你其实已经收获了许多,况且人生也不完全是事业,每一个人都有自己的优势。不和他人比较,只和昨天的自己比较,确实是这样~~上代码的,也许对于我很简单的东西,刚入门的人却觉得很难,同理,我觉得难以理解的,肯定也有人觉得太简单了~~祝自己简单生活每一天么么哒~~
//注意用数组模拟栈,所有删除操作都是移动栈顶标记,因为数组难以进行删除操作#include <iostream>using namespace std;class Stack{private: int *T;//动态申请空间的指针 int n;//栈内的元素个数 int maxsize;//栈的最大容量public: Stack(int m);//创建栈 ~Stack(){delete []T;} bool isempty(){return n==-1;} bool isfull(){return n==maxsize;} int top(); void push(int x); void pop();};Stack::Stack(int m)//传入多少个元素,鉴于栈是从0开始的所以必须最多到m-1{ maxsize=m-1; T=new int[m]; n=-1;}int Stack::top(){ if (isempty()) cout<<"栈已经为空了么么哒~~\n"; else return T[n];}void Stack::push(int x){ if (isfull()) cout<<"我已经满了么么哒\n"; else T[++n]=x;}void Stack::pop(){ if (isempty()) cout<<"栈已经为空么么哒\n"; else n--;} int main() { int k; Stack A(5);//存放奇数 Stack B(5);//存放偶数 while(cin>>k) { if (k<0) cout<<"请输入正确的数,范围0~1000\n"; else if (k%2) A.push(k); else B.push(k); } while(!A.isempty()) { cout<<A.top()<<" "; A.pop(); } cout<<endl; while(!B.isempty()) { cout<<B.top()<<" "; B.pop(); } cout<<endl; return 0; }
//用链接存储存储就不需要最大容量,注意用链杰存储就头节点就应当指向栈顶,插入元素时将新节点的下一个指向头节点,再让头节点为新节点,因为如果栈底为头节点,那么每次找栈顶压入删除都要花费大量时间~~#include <iostream>using namespace std;class Stack;class node{private: int element; node *next; friend Stack;};class Stack{private: int n; node *head;public: Stack(){n=-1;} bool isempty(){return n==-1;} void push(int x); void pop(); int top();};void Stack::push(int x){ node *p=new node; p->element=x; p->next=head; head=p; n++;}void Stack::pop(){if (isempty())cout<<"栈已经为空"<<endl;else{ node *q=head;//先记下头节点,再让头节点的指向下一个 head=head->next; delete(q); n--;} }int Stack::top(){ if (isempty()) cout<<"栈已经为空"<<endl;else return head->element;}int main(){ int i; Stack A; for (i=1;i<=10;i++) A.push(i); for (i=1;i<=10;i++) { cout<<A.top()<<" "; A.pop(); }}
0 0
- 数据结构学习笔记
- 数据结构学习笔记(一)
- 数据结构学习笔记--前言
- 数据结构学习笔记--迷宫
- 数据结构学习笔记
- Java数据结构 学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记1
- 数据结构学习笔记一
- 数据结构学习笔记二
- 数据结构学习笔记三
- 数据结构学习笔记(1)
- 《数据结构》学习笔记12
- 《数据结构》学习笔记 16
- 数据结构学习笔记 --- 前言
- 数据结构学习笔记
- C程序设计-现代方法
- 第三周 项目1-顺序表的基本运算
- 去掉android二维码的边框
- BP 神经网络之我见s庆
- 关于 R 中 princomp 和 prcomp 的 区别
- 数据结构学习笔记
- 第三周项目1-(3)ListInsert、ListDelete、InitList、DestroyList函数
- 你必须知道的495个C语言问题
- Apple IT 管理指南 01
- MySQL 5.6的安装
- 体验复杂度—汉诺塔
- C与指针
- 查看linux版本的三种常用方法
- git 更新某个目录或文件