-
栈进制转换进阶查看全部
-
初步进制转换查看全部
-
栈实例化对象测试栈方法查看全部
-
栈的遍历查看全部
-
出栈,入栈函数查看全部
-
清空栈的函数和求栈长的函数查看全部
-
栈判空,判满函数查看全部
-
///////////////查看全部
-
////查看全部
-
16进制兼容查看全部
-
栈的一般具有的函数查看全部
-
我的栈 (续): void push(const elemtype &c) { if (isfull()) { cout << "满了"; // throw .. } node *p = new node(c); top->next = p; p->last = top; top = p; ++size; } elemtype pop() { if (isempty()) { cout << "空了"; // theow .. } elemtype x = top->data; node *p = top; top = p->last; top->next = NULL; delete p; --size; return x; } // 遍历函数,默认从栈底到栈顶 void traverse(bool isfrombottom = true) { node *p; if (isfrombottom) { p = base->next; while (p) { cout << p->data; p = p->next; } cout<<endl; } else { p = top; while (p != base) { cout << p->data; p = p->last; } cout<<endl; } } int lenth() { return size; } void clearStack() { node *p = base->next,*q; while (p) { q = p; p = p->next; delete q; } top = base; size = 0; base->next = NULL; } };查看全部
-
#include<iostream> using namespace std; #define elemtype char struct node { elemtype data; node *last; node *next; // 新定义的结点的默认构造函数 node(const elemtype data = 0,node *last = NULL,node *next = NULL) { this->data = data; this->last = last; this->next = next; } ~node() { data = 0; last = next = NULL; } }; class stack{ private: node *base; //栈底 node *top; //栈顶 int size; //栈的实际大小 public: stack() { // 申请一个哨兵结点作为栈底,哨兵的data没有意义 // 如果申请物理空间失败,抛出异常 if (!(base = new node())) { cout << "内存不足!"; // throw ... } top = base; size = 0; } ~stack() { node *p=base,*q=NULL; while(p) { q = p; p = p->next; delete q; } } bool isfull() { // 尝试申请一个node,如果可以申请说明未满 node *p=new node; if (!p) { return true; } else { delete p; return false; } } bool isempty() { return !size; // 也可以写成 return top == base; }查看全部
-
转化16进制的时候 来自慕网的用户 code16 的提示: 直接把栈的数据类型改成char,然后push进去的是num里面的对应,这样岂不是更好查看全部
-
栈的应用,讲的很透彻,另有事例配合说明。查看全部
举报
0/150
提交
取消