-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathExecuteStep.h
More file actions
62 lines (55 loc) · 1.92 KB
/
ExecuteStep.h
File metadata and controls
62 lines (55 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#pragma once
using namespace Platform;
using namespace AlgorithmVisualization;
using namespace Windows::Foundation::Collections;
namespace AlgorithmVisualization {
/// <summary>
/// 执行指令
/// </summary>
public ref struct ExcuteInstruct sealed
{
property int Opcode; //操作码
property IVector<int>^ Operand; //操作数
};
/// <summary>
/// 算法的单个步骤
/// </summary>
public ref class SingleStep sealed
{
public:
SingleStep(int type); //构造函数
property int Type; //步骤的类型
property IVector<int>^ HighlightLines; //高亮显示的行数
property IVector<IVector<int>^>^ ThisState; //当前步骤的状态
property IVector<ExcuteInstruct^>^ ToNextStep; //运转到下一步的过程
};
/// <summary>
/// 算法执行的步骤
/// </summary>
ref class ExecuteStep abstract
{
public:
int CountStep(); //计算有多少步
int AddStep(SingleStep^ step); //添加步骤
int RemoveStep(int index); //删除步骤
void ClearStep(); //清空步骤
SingleStep^ NavigateToFirst(); //导航到第一步
SingleStep^ NavigateToLast(); //导航到最后一步
bool IsFirstStep(); //是否是第一步
bool IsLastStep(); //是否是最后一步
SingleStep^ GetFirstStep(); //获取第一步
SingleStep^ GetLastStep(); //获取最后一步
void DefaultInit(); //默认初始化函数
bool TimerIsRunning(); //计时器是否在运行
void StopTimer(); //终止计时器
property IVector<int>^ SpeedList;
property IVector<SingleStep^>^ StepList; //步骤列表
property int CurrentStep; //当前的步骤
property int64 Speed; //演示速度
property Windows::System::Threading::ThreadPoolTimer^ ThreadTimer; //计时器线程
protected private:
virtual SingleStep^ NavigateToStep(int index) = 0; //导航到指定的步骤
virtual SingleStep^ NavigateToNext() = 0; //导航到下一步
virtual SingleStep^ NavigateToPrevious() = 0; //导航到上一步
};
}