摘要: 介绍红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。 阅读以下需要了解普通二叉树的插入以及删除操作。 红黑树是在普通二叉树上,对没个节点添加一个颜色属性形成的,同时整个红黑二叉树需要同时满足一下... 阅读全文
posted @ 2018-07-17 22:27 LyndonMario 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 1.排序算法://****************************Sort.h******************************************** #ifndef SORT_H #define SORT_H #include #include #include //冒泡排序 void BubbleSort(int data[],int len); //简单选... 阅读全文
posted @ 2018-07-17 22:26 LyndonMario 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1.二分查找和插值查找//************************Search.h*********************************** #ifndef SEARCH_H #define SEARCH_H #include #include int BiSearch(int array[],int n,int key); int IVSearch(int arra... 阅读全文
posted @ 2018-07-17 22:25 LyndonMario 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1.Prim算法生成最小生成树//Prim算法生成最小生成树 void MiniSpanTree_Prim(MGraph G) { int min,i,j,k; int adjvex[MAXVEX]; int lowcost[MAXVEX]; lowcost[0] = 0; adjvex[0] = 0; for(i = 1;i 0) { f = parent[f]; }... 阅读全文
posted @ 2018-07-17 22:23 LyndonMario 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1.树的储存方式//****************双亲表示法************************ #define Max_TREE_SIZE 100 typedef int TElemType; typedef struct PTNode //结点结构 { TElemType data; int parent; }PTNode; typedef struct { PTNode... 阅读全文
posted @ 2018-07-17 22:22 LyndonMario 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1.kmp#include #include #include #include void get_nextval(char *str,int *nextval) { int i,j; i = 0; j = -1; nextval[0] = -1; int len = strlen(str); while(i = lenS)return i-lenS;//必须要由j使... 阅读全文
posted @ 2018-07-17 22:20 LyndonMario 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1.栈的顺序存储结构//*********************************stack_array.h************************************ #ifndef STACK_ARRAY_H #define STACK_ARRAY_H #define MAXSIZE 1000 #include #include #include typedef i... 阅读全文
posted @ 2018-07-17 22:19 LyndonMario 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1.单链表//单链表代码,手打纯手工 //***********************************link.h*********************************** #ifndef LINK_H #define LINK_H #include #include #include typedef int datatype; typedef struc... 阅读全文
posted @ 2018-07-17 22:18 LyndonMario 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 附件列表算法.jpg 阅读全文
posted @ 2018-07-17 22:16 LyndonMario 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 附件列表数据结构绪论.jpg 阅读全文
posted @ 2018-07-17 22:14 LyndonMario 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 来源: https://www.devbean.net/2012/09/qt-study-road-2-events/1.事件驱动的概念:我们的程序的执行顺序不再是线性的,而是一个个事件驱动着程序进行。没有事件,程序将阻塞在那里,不执行任何代码。2.总的来说,如果我们使用组件,我们关心的是信号槽;如果我们自定义组件,我们关心的是事件。因为我们可以通过事件来改变组件的默认操作。比如,如果我们要自定义... 阅读全文
posted @ 2018-07-17 22:11 LyndonMario 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 在前面的章节中,我们讨论了 Qt 标准对话框QMessageBox的使用。所谓标准对话框,其实也就是一个普通的对话框。因此,我们同样可以将QDialog所提供的其它特性应用到这种标准对话框上面。今天,我们继续讨论另外一个标准对话框:QFileDialog,也就是文件对话框。在本节中,我们将尝试编写一个简单的文本文件编辑器,我们将使用QFileDialog来打开一个文本文件,并将修改过的文件保存到硬... 阅读全文
posted @ 2018-07-17 22:10 LyndonMario 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.devbean.net/2012/09/qt-study-road-2-standard-dialogs-qmessagebox/1.Qt 的内置对话框大致分为以下几类:QColorDialog:选择颜色;QFileDialog:选择文件或者目录;QFontDialog:选择字体;QInputDialog:允许用户输入一个值,并将其值返回;QMessageBox:模态... 阅读全文
posted @ 2018-07-17 22:09 LyndonMario 阅读(198) 评论(0) 推荐(0) 编辑
摘要: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle(tr("Main Window")); openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this); openAct... 阅读全文
posted @ 2018-07-17 22:09 LyndonMario 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1.新组件:①QSpinBox 只能输入数字的输入框,并且带有上下箭头的步进按钮②QSlider 带有滑块的滑杆③这两个组件的连接 QObject::connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);1 1 QObject::connect(slider, &QSlider::valueChanged,... 阅读全文
posted @ 2018-07-17 22:08 LyndonMario 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。GUI 界面需要同时具有运行时的效率以及更高级别的灵活性。为了解决这一问题,Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预... 阅读全文
posted @ 2018-07-17 22:07 LyndonMario 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 在主窗口基础之上,添加菜单和工具栏等的动作。// !!! Qt 5 // ========== mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget... 阅读全文
posted @ 2018-07-17 22:06 LyndonMario 阅读(225) 评论(0) 推荐(0) 编辑
摘要: Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改。Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中。Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化。本节主要对 Qt 5 的模块进行一个简单的介绍,以便以后大家需要哪些功能的时候知道到哪个模块去寻找。Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分。... 阅读全文
posted @ 2018-07-17 22:04 LyndonMario 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 具体实现一个自定义newspaper,reader的信号槽//!!! Qt5 #include ////////// newspaper.h class Newspaper : public QObject { Q_OBJECT public: Newspaper(const QString & name) : m_name(name) { }... 阅读全文
posted @ 2018-07-17 22:02 LyndonMario 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1.信号槽最常用的方式:connect(sender, signal, receiver, slot);第一个对象是发出信号的对象,第二个是发送对象发出的信号,第三个是接收信号的对象,第四个是接收对象在接收到信号后需要调用的函数。Qt5中QObject::connect()的五个重载:QMetaObject::Connection connect(const QObject *,... 阅读全文
posted @ 2018-07-17 22:01 LyndonMario 阅读(227) 评论(0) 推荐(0) 编辑