- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构
******************
day09
******************
第一课 堆栈与队列
1、数据结构的基本概念
(1)逻辑结构
1)集合结构(集) 数组 顺序树 复
链式 链表 链式树 合
2、数据结构的基本运算
(1)创建与销毁
(2)插入与删除
(3)获取与修改
(4)排序与查找
3、堆栈(vi static.cpp/lstatic.cpp)
(1)基本特征:后进先出
(2)基本操作:压入(push),弹出(pop)
(3)实现要点:初始化空间,栈顶指针,判空判满
【代码:vi stack.cpp】
#include iostream
using namespace std;
// 基于顺序表的堆栈
class Stack {
public:
// 构造过程中分配内存
Stack (size_t size = 10) :
m_array (new int[size]), m_size (size),
m_top (0) {}
// 析构过程中释放内存
~Stack (void) {
if (m_array) {
delete[] m_array;
m_array = 0;
}
}
// 压入
void push (int data) {
if (full ())
throw OverFlow ();
m_array[m_top++] = data;
}
// 弹出
int pop (void) {
if (empty ())
throw UnderFlow ();
return m_array[--m_top];
}
// 判满
bool full (void) const {
return m_top = m_size;
}
// 判空
bool empty (void) const {
return ! m_top;
}
private:
// 上溢异常
class OverFlow : public exception {
const char* what (void) const throw () {
return 堆栈上溢!;
}
};
// 下溢异常
class UnderFlow : public exception {
const char* what (void) const throw () {
return 堆栈下溢!;
}
};
int* m_array; // 数组
size_t m_size; // 容量
size_t m_top; // 栈顶
};
void printb (unsigned int numb, int base) {
Stack stack (256);
do {
stack.push (numb % base);
} while (numb /= base);
while (! stack.empty ()) {
int digit = stack.pop ();
if (digit 10)
cout digit;
else
cout char (digit - 10 + A);
}
cout endl;
}
int main (void) {
try {
Stack stack;
for (int i = 0; ! stack.full (); ++i)
stack.push (i);
// stack.push (0);
while (! stack.empty ())
cout stack.pop () endl;
// stack.pop ();
}
catch (exception ex) {
cout ex.what () endl;
return -1;
}
cout 输入一个整数: flush;
int numb;
cin numb;
cout 您想看几进制: flush;
int base;
cin base;
cout 结果:;
printb (numb, base);
return 0;
}
【代码:vi lstack.cpp】
#include iostream
using namespace std;
// 基于链式表的堆栈
class Stack {
public:
// 构造过程中初始化为空堆栈
Stack (void) : m_top (NULL) {}
// 析构过程中销毁剩余的节点
~Stack (void) {
您可能关注的文档
- 手持GPS参数设置及全国各地坐标转换参数解析.doc
- 手袋箱包专用名解析.doc
- 手法七箭形图解法解析.doc
- 手工电弧焊实习解析.doc
- 手绘效果图技法-授课计划解析.doc
- 手术室基建工程用户需求书解析.doc
- 手术室专科解析.doc
- 公开课色彩的搭配导论.ppt
- 手摇升降机解析.doc
- 公开课水的三态变化导论.ppt
- 2025北京航空工业集团综合所高层次人才及博士招聘20人模拟试卷附答案.docx
- 2025四川南充市生态环境局派出机构遴选2人备考题库附答案.docx
- 2025中国少年儿童新闻出版总社有限公司社会人员招聘30人笔试参考题库附答案.docx
- 2025年长春市南关区面向社会公开招聘编制外人员参考题库(12人)带答案解析.docx
- 2025中国电建集团山东电力建设有限公司秋季招聘(66人)笔试参考题库附答案.docx
- 2025年鄂州招聘警务辅助人员66人笔试参考题库含答案解析(夺冠).docx
- 2025四川内江市资中县人民政府办公室选调3人备考题库附答案.docx
- 2025四川省国土空间生态修复与地质灾害防治研究院招聘2人备考题库附答案.docx
- 2025内蒙古锡林郭勒盟部分盟直事业单位选聘43人备考题库附答案.docx
- 2025包头市白云鄂博矿区选聘区属国有企业工作人员12人笔试备考试题附答案.docx
最近下载
- 【Title】Law of the People’s Republic of China on Choice of Law for Foreign-related Civil Relationships英语.doc VIP
- 2021年9月消化内科护士考试题.docx VIP
- 北京化工大学《有机化学》试卷(样题).pdf VIP
- 会计术语(日语).pdf VIP
- 考录公务员笔试应急预案.docx
- 细胞核的结构和功能.ppt VIP
- 消化内科31病区6月份护理人员三基考试题.docx VIP
- 王维《酌酒与裴迪》古诗词PPT.pptx VIP
- 消化内科新护士独立上岗前考试题.docx VIP
- 2025年“七一”专题党课学习课件(四套)汇编供参考选用.pptx VIP
原创力文档


文档评论(0)