2022年数据结构课程方案报告数据结构演示系统.docx
《2022年数据结构课程方案报告数据结构演示系统.docx》由会员分享,可在线阅读,更多相关《2022年数据结构课程方案报告数据结构演示系统.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用中南高校数据结构课程设计报告题目:数据结构演示系统 1)院系:信息科学与工程学院 班级:运算机 0904 姓名:张 学程 学号: 0909091322 指导老师:陈再良 完成时间: 2022.07 目录名师归纳总结 - - - - - - -第 1 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用第1章 需求分析次序表部分、一依据用户输入,创建次序表,表中各元素以空格分隔显示;非空次序表为创建. 1. 2. 3后续其它操作的前提;输入数据为各合法字符 分隔显示;创建过程中采纳
2、头插. 1法创建;非空链表为后续其它操作的前提;输入数据为各合法字符含中文);依据用户输入,返回指定元素在链表中的位置其中位置坐标从0 开查找. 2始);如所查找元素在链表中不存在,给出提示相应信息,并设置坐标位置为 -1 ;查找输入为各合法字符;依据用户输入,在指定位置插入指定元素,如输入位置超出链表范畴,给插入. 3. 4. 5出越界错误提示;如用户未输入插入元素,亦给出相应提示提示;入元素为各合法字符,插入位置为0-100 间整数;依据用户输入,删除链表中指定位置对应元素,并返回被删除元素;如用删除户输入位置超出链表范畴,给出相应错误提示;删除位置输入为0-100 间整数;依据用户输入,
3、将输入无序表排序后,进行有序合并;输入数据为各合法合并字符;名师归纳总结 数据输入 输入主串及模式串元素为各合法输入KMP 部分、三第 2 页,共 12 页 分隔的链表输出到对应文本框;如此时链查找按钮:响应大事,从链表中查找用户输入元素;查找胜利时,返回元素位置;查找失 败时,给出提示信息;插入按钮:响应大事,在链表非空及插入位置合法时,在链表中指定位置插入指定元素;删除按钮:响应大事,在链表非空及删除位置合法时,删除链表中指定位置元素,并返回 被删除元素;合并按钮:响应大事,将用户输入的两个无序表排序后进行有序合并;合并操作不依靠于 创建操作;3. KMP演示输入按钮:响应大事,猎取用户主
4、串及模式串数据输入;当模式串非空时,启用求 NEXT、求 NEXTVAL按钮;当模式串及主串均非空时,启用匹配按钮;求 NEXT按钮:响应大事,求取KMP算法中模式串各元素的next 值;匹配按钮:响应大事,依据KMP算法,对主串及模式串进行匹配操作;求 NEXTVAL按钮:响应大事,求取KMP改进算法中模式串各元素的nextval值;4. 窗口关闭按钮无演示操作时,单击关闭按钮,关闭当前对话框并返回上级对话框或退出演示程序;演示名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用操作进行过程中,关闭按钮禁
5、用,防止意外程序终止发生;第3章 具体设计数据类型、一1. 次序表各元素以空格 分隔CString m_CurrSq ;/ 当前次序表int m_CurrLength ;/ 当前次序表表长int m_CurrSize ;/ 当前次序表容量int m_InsertPos ;/ 元素插入位置CString m_InsertValue;/ 待插入元素CString m_OpValue ;/ 当前操作元素int m_OpPos;/ 当前操作位置int m_DeletePos ;/ 删除元素位置CString m_DeleteValue;/ 删除元素值CString m_StringA;/ 待排序原始表
6、 ACString m_StringB;/ 待排序原始表 BCString m_SortedA ;/ 已排序有序表 ACString m_SortedB ;/ 已排序有序表 BCString m_SortedC ;/ 排序后合并表 Cint m_PosA;/ 当前有序 A操作元素位置int m_PosB;/ 当前有序表 B操作元素位置CString m_ValueA ;/ 当前有序表 A操作元素CString m_ValueB ;/ 当前有序表 B操作元素2. 链表CString m_CreateList;/ 创建操作中原始链表int m_CurrLength ;/ 当前表长 不含头结点CSt
7、ring m_CurrList;/ 当前链表 以 - 分隔CString m_OpValue ;/ 当前操作元素int m_OpPos;/ 当前操作元素原始位置CString m_ListA;/ 待排序原始链表 ACString m_ListB;/ 待排序链表 BCString m_SortedC ;/ 合并后链表 C - 分隔CString m_SortedA ;/ 已排序链表 ACString m_SortedB ;/ 已排序链表 Bint m_PosA;/ 当前操作中链表 A元素位置int m_PosB;/ 当前操作中链表 B元素位置CString m_ValueA ;/ 当前操作中链表
8、 A元素值CString m_ValueB ;/ 当前操作中链表 B元素值int m_DeletePos ;/ 待删除元素位置CString m_DeleteValue;/ 待删除元素值CString m_FindValue;/ 待查找元素int m_FindPos ;/ 待查找元素所以位置 -1 为元素不存在int m_InsertPos ;/ 元素待插入位置CString m_InsertValue;/ 待插入元素3. KMP CString m_S ;/ 原始输入主串 无空格分隔CString m_T ;/ 原始输入子串 无空格分隔CString m_IndexS ;/ 模式匹配过程中主
9、串 S 以空格分隔操作字符以 标识名师归纳总结 CString m_IndexT ;/ 模式匹配过程中子串 T 以空格分隔操作字符以 标识第 5 页,共 12 页CString m_NextT1 ;/ 求next 过程中模式串 T1CString m_NextT2 ;/ 求next 过程中模式串 T2CString m_Next ;/ 模式串的 next 值CString m_NextvalT1;/ 求nextval 操作中模式串 T1CString m_NextvalT2;/ 求nextval 操作中模式串 T2- - - - - - -精选学习资料 - - - - - - - - - CS
10、tring m_Nextval;/ 个人资料整理仅限学习使用求nextval 操作中 nextval 值二、 相关函数1. 次序表afx_msg void OnSqCreateButton ;/ 响应创建按钮大事afx_msg void OnSqInsertButton;/ 响应插入按钮大事afx_msg void OnSqDeleteButton;/ 响应删除按钮大事afx_msg void OnSqMergeButton ;/ 响应合并按钮大事afx_msg LRESULT OnSqUpdateWPARAM wParameter,LPARAM lpParameter;/ 响应对话框数据更新
11、2. 链表afx_msg void OnListCreateButton;/ 响应创建按键大事afx_msg void OnListFindButton;/ 响应查找按钮大事afx_msg void OnListInsertButton;/ 响应插入按钮大事afx_msg void OnListDeleteButton;/ 响应删除按钮大事afx_msg void OnListMergeButton;/ 响应合并按钮大事afx_msg LRESULT OnListUpdateWPARAM wParameter,LPARAM lpParameter;/ 响应对话框数据更新3. KMP afx_m
12、sg void OnKmpInputButton ;/ 响应数据输入大事响应对话框数据更新afx_msg void OnKmpIndexButton ;/ 响应模式匹配大事afx_msg void OnKmpNextButton ;/ 响应求 Next 值大事afx_msg void OnKmpNextvalButton ;/ 响应求 Nextval 大事afx_msg LRESULT OnKmpUpdateWPARAM wParameter,LPARAM lpParameter;/ 4. 线程处理UINT sqDlgCreateLPVOID lpParam ;/ 次序表创建UINT sqDl
13、gInsertLPVOID lpParam ;/ 次序表插入UINT sqDlgDeleteLPVOID lpParam;/ 次序表删除UINT sqDlgMergeLPVOID lpParam ;/ 次序表合并UINT listDlgCreateLPVOID lpParam;/ 链表创建UINT listDlgFindLPVOID lpParam;/ 链表查找UINT listDlgInsertLPVOID lpParam;/ 链表插入UINT listDlgDeleteLPVOID lpParam;/ 链表删除UINT listDlgMergeLPVOID lpParam;/ 链表合并UI
14、NT kmpDlgIndexLPVOID lpParam ;/ 模式匹配UINT kmpDlgNextLPVOID lpParam ;/ 求Next值UINT kmpDlgNextvalLPVOID lpParam ;/ 求Nextval 值5. 其它函数名师归纳总结 void GetNextCKmpDialog* pDlg, int next;/ 求Next 用于模式匹配第 6 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用三、 具体流程创建 元素次序表次序表插入演示合并元素次序表删除元素演示系链表创建插入次序表元素统主
15、对演示合并查找话框次序表元素删除NextKMP数据模式演示输入匹配Nextval四、 重要算法1.次序表线程函数算法 1.1 / 次序表创建UINT sqDlgCreateLPVOID lpParam CSqDialog* pDlg = CSqDialog*lpParam;/ 更新过程中禁用 相关按钮及 系统菜单关闭按钮 for int i = 0; i m_CreateSq.GetLength; +i pDlg-m_OpPos = i ;pDlg-m_CurrSq += pDlg-m_CreateSq.GetAti;pDlg-m_OpValue.SetAt0, pDlg-m_CreateSq
16、.GetAti pDlg-m_CurrSq += _T ;+pDlg-m_CurrLength ;if pDlg-m_CurrSize m_CurrLength pDlg-m_CurrSize *= 2;/ 增加容量到原容量 2倍 Sleep1000 ;/ 发送消息给主线程 更新对话框 pDlg-SendMessageWM_USER+1, NULL, NULL; / 重新启用创建按钮 及 系统菜单关闭按钮 名师归纳总结 / 如次序表不为空启用相关控件第 7 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用if 0 .= pD
17、lg-m_CurrLength pDlg-GetDlgItemIDC_SQ_INSERT_BUTTON-EnableWindowTRUE pDlg-GetDlgItemIDC_SQ_DELETE_BUTTON-EnableWindowTRUE return 0 ; 算法 1.2;/ 次序表插入线程函数UINT sqDlgInsertLPVOID lpParam CSqDialog* pDlg = CSqDialog*lpParamif pDlg-m_InsertValue.IsEmpty MessageBoxNULL, _T 不能插入空元素! , _T 插入元素非法 , MB_OK;retur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 数据结构 课程 方案 报告 演示 系统
限制150内