![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Jokic_Rn
北航
展开
-
数据结构——排序
归并排序归并:将2个有序的序列合并成一个序列归并排序:将数组分成两部分,每部分递归分开两部分,然后递归合并回来,最后将两大部分合并。原创 2022-04-06 17:22:51 · 279 阅读 · 0 评论 -
数据结构——字符串匹配
定义一个字符串类,将输入的数组存储在ch[MAXLEN + 1]中,第0位不存储元素,便于之后算法的实现class Sstring{public: char ch[MAXLEN + 1]; int length; Sstring(const char* str):length(strlen(str)) { for (int i = 1; i <= length;i++) { ch[i] = *str; str++; } }};BF字符串匹配算.原创 2021-08-02 09:57:50 · 331 阅读 · 0 评论 -
数据结构——线性表(单链表)
单链表的C++实现链表是由结点Node构成的,数据域data,指针域next#include <iostream>using namespace std;//链表的节点class Node{public: int data; Node *next;};//链表class Linklist{ public: Node *head; Linklist(); ~Linklist(); void createList(int len); int getLe原创 2021-07-22 15:29:51 · 143 阅读 · 1 评论 -
数据结构——绪论
数据结构——绪论1.数据的逻辑结构线性结构线性表、栈、队列、字符串、广义表、数组非线性结构树形结构、图形结构2.数据的存储结构顺序存储链式存储3.数据的运算检索、排序、插入、删除、修改等...原创 2021-04-15 15:55:23 · 88 阅读 · 0 评论 -
数据结构——线性表(顺序表)
数据结构——线性表的顺序表示和实现线性表的顺序表示是值:一组地址连续的存储单元依次存储线性表的数据元素顺序表的查找、删除、插入算法平均时间复杂度为O(n)O(n)O(n)main.cpp#include <iostream>#include "functions.h" int main(int argc, char** argv) { SqList L; char arr[] = "hello"; int i; char e; InitList_Sq(L);原创 2021-04-16 17:21:19 · 141 阅读 · 0 评论 -
数据结构——抽象数据类型的表现与实现
1.抽象数据类型下面这个例子是关于复数的一个抽象数据类型,所谓抽象数据类型,由三部分构成:数据对象:c1数据关系:x是c1的实部,y是c1的虚部基本操作:求实部、求虚部、求和、求差#include <stdio.h>//Complex类型定义 typedef struct{ float Realpart; float Imagepart;}Complex;//函数声明 void Create(Complex &C, float x, float y);f原创 2021-04-14 14:46:37 · 1137 阅读 · 0 评论 -
数据结构——队列(链队)
链结点的定义,链式存储结构由结点相连而成,class Qnode{public: int data = 0; Qnode* next = nullptr;};构造函数,实现链队列的初始化,把初始化时的队列当作空队列,第一个结点不作数据存储析构函数,回收链队申请的内存class Linkqueue{public: Qnode* front;//队头指针 Qnode* rear;//队尾指针 Linkqueue() { front = new Qnode();.原创 2021-07-30 14:28:07 · 295 阅读 · 0 评论 -
数据结构——队列(顺序循环队)
队列队列是先进先出的存取方式,在队前面的先出队如下图但是有一个问题在于,这种方式会对开辟出来的空间造成浪费,因为入队时在队尾入,出队时从队头出,出队的空间没有利用起来就会造成空间浪费。故采取循环队列的存储方式,即入队过程中如果已经rear下标到数组末端了,下一步就让它回到base的位置,实现方法也很简单,原来数据入队后rear = rear +1,现在改为rear = (rear + 1)%数组长度即可实现循环的功能构造函数,实现队列的初始化,通过base指向一块新申请的堆空间,并设置数组下标为0原创 2021-07-30 10:59:58 · 487 阅读 · 0 评论 -
数据结构——链栈
#include <iostream>using namespace std;class Node{public: int data = 0; Node* next = nullptr;};class Linkstack{public: Node* head; Linkstack() :head(nullptr) { } ~Linkstack() { } int isEmpty(); void push(int value); void p原创 2021-07-28 17:17:03 · 90 阅读 · 0 评论 -
数据结构——顺序栈
本节通过顺序存储结构来实现栈值得注意的一点:类模板中函数的声明和实现不能分离,应该写入一个.hpp文件中,可参考>>C++模板栈的定义,包含栈的容量大小,栈顶指针,栈底指针以及一些函数实现template<typename Elemtype>class Stack{public: int stacksize; Elemtype *top = nullptr; Elemtype *base = nullptr; Stack(int size = 0); ~St原创 2021-07-27 16:51:33 · 164 阅读 · 0 评论