历时2个多月,把21版王道数据结构的课后代码题全部实现了一遍,一共96道题
文件目录结构:
- 编程环境:Visual Studio 2019
- 编程语言:C/C++
其中,每道题都是一个独立的cpp文件,可以独立运行。在树和图的章节,会有输入样例和对应的示例图。
cpp文件结构
- 建立要求的数据结构
- 题目说明
- 题目要求的代码
- 运行示例
以树章节的题目示例:
#include <iostream> #include <stack> #include <queue> using namespace std;
#pragma region 构造链式存储的表达式二叉树
#define MaxSize 100 #define ElemType char #define _for(i,a,b) for(int i=(a);i<(b);i++)
typedef struct node { ElemType data[10]; node* left; node* right; }Node, * BiTree;
void CreateBiTree(BiTree& T) { ElemType ch;
cin >> ch;
if (ch == '#') T = NULL; else { T = new Node; T->data[0] = ch; CreateBiTree(T->left); CreateBiTree(T->right); } }
void visit(Node* BiNode) { cout << BiNode->data[0] << " "; }
void InOrder(BiTree T) { if (T) { InOrder(T->left); visit(T); InOrder(T->right); } }
#pragma endregion
queue<Node*> q; stack<Node*> s;
void MedEx(BiTree T,int deep) { if (!T) return; else if (!T->left && !T->right) cout << T->data[0]; else { if (deep > 1) cout << "("; MedEx(T->left, deep + 1); cout << T->data[0]; MedEx(T->right, deep + 1); if (deep > 1) cout << ")"; } }
void ToMedEx(BiTree T) { MedEx(T, 1); }
int main() { BiTree T; cout << "请输入先序遍历顺序下各个结点的值,'#'表示没有结点:" << endl;
CreateBiTree(T); cout << "中序遍历:" << endl; InOrder(T); cout << endl; ToMedEx(T); return 0; }
|
emm也是记录一下考研期间重新学习数据结构的过程,留个回忆~
一定要一战成硕啊!
代码仅供个人研究,及交流学习使用,版权归原作者所有,如果有侵犯到您的权利,请及时联系删除。
最后附上代码地址,顺便点个star呗~
Wangdao-Data-Structures