【数据结构】【王道】【栈与队列】链式队列的实现及基本操作(带头结点)(可直接运行)

《数据结构》知识点汇总+算法代码总结【全】 写在前面:本文写于吴签时期,在家备考时刷完数据结构王道书之后想着把书中重点梳理汇总一下。本文内容包括但不局限于王道数据结构每章的知识点及其课后习题所涵盖的知识点。本人曾在大三期间打过一些程序设计类比赛,所以本文所涉及到的代码不一定局限于王道书,但思想都一样。 期末复习和备考408均可使用第一章:绪论(不在考研大纲但很重要)第二章:线性表第三章:栈和队列第四章:串第五章:树与二叉树第六章:图第七章:查找 第一章:绪论(不在考研大纲但很重要) 数据结构三要素:逻辑结构、存储结构、数据的运算;其中逻辑结构包括线 阅读详情

总目录

1.基本实现

1.1 结构体构造

typedef struct LinkNode {   // 链式队列结点
    int data;   // 数据域
    struct LinkNode *next;  // 指针域
} LinkNode;

typedef struct {    // 链式队列
    // 如果不设置尾指针,若要插入,遍历到队尾再插入,时间复杂度O(n)
    LinkNode *front, *rear; // 队列的队头和队尾指针
} LinkQueue;

1.2 初始化

// 初始化(带头结点)
void InitQueue(LinkQueue &Q) {
    // 初始时为头结点分配空间,并令头指针、尾指针都指向头结点
    Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));
    // 将头结点指针域置空
    Q.front->next = NULL;
}

1.3 判空

// 判断队列是否为空
bool Empty(LinkQueue Q) {
    // 头指针与尾指针指向同一地址(头结点即表示队列为空)
    // 或者也可以根据Q.front->next = NULL来进行判定
    if(Q.front == Q.rear) {
        return true;
    } else {
        return false;
    }
}

1.4 入队

// 入队
bool EnQueue(LinkQueue &Q, int x) {
    // 申请分配空间
    LinkNode *s = (LinkNode*)malloc(sizeof(LinkNode));
    // 内存分配失败的情况
    if(s == NULL) {
        return false;
    }
    // 将数据赋值给数据域
    s->data = x;
    // 由于队列必定在队尾插入,所以指针域要设为NULL
    s->next = NULL;
    // 入队操作
    Q.rear->next = s;
    // 修改队尾指针
    Q.rear = s;
    return true;
}

1.5 出队

// 出队操作
bool DeQueue(LinkQueue &Q, int &x) {
    // 空队的情况
    if(Q.front == Q.rear) {
        return false;
    }
    // 由于队列出队操作一定是在队头进行,所以以一临时指针指向队头结点(非头结点,是队列第一个结点)
    LinkNode *p = Q.front->next;
    // 将队头元素赋值给x
    x = p->data;
    // 令队头指针指向队头元素下一个元素
    Q.front->next = p->next;
    // 出队为最后一个结点的情况
    if(Q.rear == p) {
        // 修改尾指针,使其指向头结点,以免之后释放空间时尾指针指向未知地点
        // 同时,也表示此队列已是空队列
        Q.rear = Q.front;
    }
    // 释放空间
    free(p);
    return true;
}

1.6 获取队头元素的值

// 获取队头元素的值
bool GetHead(LinkQueue Q, int &x) {
    // 空队的情况
    if(Q.front == Q.rear) {
        return false;
    }
    // 将队头元素赋给引用变量x
    x = Q.front->next->data;
    return true;
}

1.7 输出队列中所有元素

// 输出队列中所有元素
// 由于队列只能在队头出队,所以只能将所有元素出队输出
void PrintQueue(LinkQueue Q) {
    if(Empty(Q)) {
        printf("the queue is empty!\n");
    }
    while(!Empty(Q)) {
        int x;
        DeQueue(Q, x);
        printf("dequeue:%d\n", x);
    }
}

2.完整代码

#include<stdio.h>
#include<stdlib.h>

typedef struct LinkNode {   // 链式队列结点
    int data;   // 数据域
    struct LinkNode *next;  // 指针域
} LinkNode;

typedef struct {    // 链式队列
    // 如果不设置尾指针,若要插入,遍历到队尾再插入,时间复杂度O(n)
    LinkNode *front, *rear; // 队列的队头和队尾指针
} LinkQueue;

// 初始化(带头结点)
void InitQueue(LinkQueue &Q) {
    // 初始时为头结点分配空间,并令头指针、尾指针都指向头结点
    Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));
    // 将头结点指针域置空
    Q.front->next = NULL;
}

// 判断队列是否为空
bool Empty(LinkQueue Q) {
    // 头指针与尾指针指向同一地址(头结点即表示队列为空)
    // 或者也可以根据Q.front->next = NULL来进行判定
    if(Q.front == Q.rear) {
        return true;
    } else {
        return false;
    }
}

// 入队
bool EnQueue(LinkQueue &Q, int x) {
    // 申请分配空间
    LinkNode *s = (LinkNode*)malloc(sizeof(LinkNode));
    // 内存分配失败的情况
    if(s == NULL) {
        return false;
    }
    // 将数据赋值给数据域
    s->data = x;
    // 由于队列必定在队尾插入,所以指针域要设为NULL
    s->next = NULL;
    // 入队操作
    Q.rear->next = s;
    // 修改队尾指针
    Q.rear = s;
    return true;
}

// 出队操作
bool DeQueue(LinkQueue &Q, int &x) {
    // 空队的情况
    if(Q.front == Q.rear) {
        return false;
    }
    // 由于队列出队操作一定是在队头进行,所以以一临时指针指向队头结点(非头结点,是队列第一个结点)
    LinkNode *p = Q.front->next;
    // 将队头元素赋值给x
    x = p->data;
    // 令队头指针指向队头元素下一个元素
    Q.front->next = p->next;
    // 出队为最后一个结点的情况
    if(Q.rear == p) {
        // 修改尾指针,使其指向头结点,以免之后释放空间时尾指针指向未知地点
        // 同时,也表示此队列已是空队列
        Q.rear = Q.front;
    }
    // 释放空间
    free(p);
    return true;
}

// 获取队头元素的值
bool GetHead(LinkQueue Q, int &x) {
    // 空队的情况
    if(Q.front == Q.rear) {
        return false;
    }
    // 将队头元素赋给引用变量x
    x = Q.front->next->data;
    return true;
}

// 输出队列中所有元素
// 由于队列只能在队头出队,所以只能将所有元素出队输出
void PrintQueue(LinkQueue Q) {
    if(Empty(Q)) {
        printf("the queue is empty!\n");
    }
    while(!Empty(Q)) {
        int x;
        DeQueue(Q, x);
        printf("dequeue:%d\n", x);
    }
}

int main() {
    LinkQueue Q;
    InitQueue(Q);
    PrintQueue(Q);
    int x;
    EnQueue(Q, 3);
    GetHead(Q, x);
    printf("enqueue:%d\n", x);
    x = 5;
    EnQueue(Q, x);
    printf("enqueue:%d\n", x);
    x = 7;
    EnQueue(Q, x);
    printf("enqueue:%d\n", x);
    PrintQueue(Q);
}

3.运行结果

在这里插入图片描述

数据结构第三章——栈与队列 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考栈是只允许在表的一端进行插入和删除操作的线性表,队列也是一种操作受限的线性表,只允许在表的一端进行插入,在表的另一端进行删除。操作特性时先进先出。循环队列即将队列想像成为一个环状空间(但实际上该怎么存还怎么存),从逻辑上将队列视为环初始时:Q.front=Q.rear=0; 阅读详情

相关推荐

【G4基础08】GPS-2-Macro Commands宏命令

GPS-2

adelall的博客 3738

数据结构--第三章--栈和队列--知识点回顾

第三章 栈和队列 一、基本知识点 (1)栈、队列和线性表的异同。 (2)顺序栈的基本运算算法设计。 (3)链栈的基本运算算法设计。 (4)顺序队的基本运算算法设计。 (5)环形队列和非环形队列的特点。 (6)链队的基本运算算法设计。 (7)利用栈/队列求解复杂的应用问题。 二、要点归纳、基本实现 栈的定义和基本运算: 1、栈的定义:后进先出表 2、栈的基本运算 (1)置空栈:s=NULL; (2)判栈空:empty(s); (3) 入栈:push(s,x); (4) 出栈:pop(s); (5) 读栈顶元素

iBin 2530

Codex驱动AEDT完成无线充电仿真——从双线圈建模到三维电磁场动画

本文介绍了一个利用Codex、PyAEDT和Ansys Electronics Desktop 2025 R2实现双线圈无线充电系统自动建模与仿真的案例。通过简化模型(平面线圈+铁氧体磁芯),完成了从参数化建模、电磁场求解到后处理的全流程自动化,获得了耦合系数(k=0.17)、三维电磁场分布及多周期动态可视化效果。研究发现:线圈间距对传输效率影响最大(10-30mm间距时效率从40.2%降至5.57%),横向偏移15mm会使效率下降35%,而磁芯厚度增加带来的效率提升有限(3→7mm仅提高1.67%)。该框

sjjsjjsjjsjjsjj的博客 446

链表、栈、队列基础总结

链式结构:数据元素存储在彼此相互独立的内存中,每个独立的元素也叫做结点,每个结点中增加一项数据项用于存储其他相关结点的地址,以此表示结点之间的关系。

weixin_56324038的博客 497

Docker入门教程:在腾讯云轻量服务器上部署你的第一个容器化应用 (2025)

还在为“在我电脑上明明是好的”而烦恼?本篇Docker入门教程,用通俗易懂的比喻解释镜像、容器的核心概念,并手把手带你在腾讯云轻量服务器上,从运行Nginx到编写Dockerfile打包自己的Python应用,轻松掌握容器化部署。

Clownseven的博客 2084

嵌入式充电协议深度解析:从QC到PD3.1的技术演进与实战应用

本文深入解析了从QC到PD3.1的嵌入式充电协议技术演进与实战应用。通过电压谈判、协议芯片设计、Type-C接口优化等关键技术,详细介绍了快充协议在嵌入式系统中的实现挑战与解决方案,包括兼容性测试、EMC问题处理及空间限制创新设计,为开发者提供了宝贵的实践经验。

weixin_29194817的博客 420

链式栈与链式队列学习

数据结构与算法(C++实现)学习笔记(七) 1.链式栈 1.1链式栈简介 链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。 栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底(push),最后...

ttdss12345678的博客 826

SGX软硬件栈(二)——硬件指令

硬件指令分为内核权限硬件指令和用户权限硬件指令。内核权限硬件指令指的是指令需要通过内核态下才能访问,缩写是ENCLS。用户权限硬件指令指的是指令用户态下便能访问,缩写是ENCLU。每一个具体的功能指令被称为叶功能,如EADD叶功能,因为叶功能之间的区分是硬件指令(如ENCLS指令:0x 0F 01 CF)的EAX值不同,因此ENCLS指令的EAX在输入时都是用作叶功能号。 内核权限硬件指令-ENCLS 如图2所示,SGX 1代指令中,ENCLS主要用于管理Enclave生命周期等。比如下文将介绍的Enc

小气球归来的博客 2889

数据结构与算法:链式栈与链式队列的基本操作(带头节点与不带头节点对比分析)

代码】数据结构与算法:链式栈与链式队列的基本操作(带头节点与不带头节点对比分析)

weixin_50690285的博客 495

实战指南:基于Windows Server构建企业级AAA认证体系

本文详细介绍了如何在Windows Server环境下构建企业级AAA认证体系,涵盖AD域服务部署、NPS服务器配置及华为设备对接实战。通过整合Radius协议与AD域账号管理,实现网络设备的统一认证与权限控制,提升企业IT安全管理效率。特别适用于需要零成本实现AAA认证的中大型企业。

weixin_28304023的博客 422

【Qt】QML-01:使用QtCreator10创建QML工程,并讲解第一个程序:Hello World

QML第一讲:创建QML工程、详解QML第一个程序Hello World

郭老二 7796

链式栈基本操作的实现

在单链表的基础上来实现链式栈就比较容易了 首先,定义连个结构体,一个是结点的结构体,还有一个是链式栈的结构体,链式栈的结构体中有一个指针指向栈顶。 依次实现下面的操作: 1.初始化:初始化只需要将栈顶指针置为空即可;在这需要注意要先申请一个栈,才能进行初始化。 2.销毁栈:如果栈不为空,则先将没一个元素进行出栈操作,最后释放栈空间; 3.入栈:首先创建一个结点,再将这个结点入栈,最后修改

liru_1996的博客 802

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

【数据结构】【王道】【栈与队列】不带头结点链栈的实现及基本操作(可直接运行)

总目录 链栈实际上与单链表极为相似,区别主要在于判断条件以及链栈的操作只能在表头进行,即就是将单链表的操作固定在了表头。此处实现的是不带头结点的链栈,与带头结点的主要差别在于带头结点的链栈栈顶指针指向以及条件判断方面。实际上,相比于单链表带头结点对于不带头结点的优势,链栈由于都是在表头进行操作,所以带头结点链表的统一操作的优势便难以表现出来了。综上,带头结点的链栈实现其实与带头结点单链表相差不大,此处便不进行实现了。 2.2 初始化 2.3 判空 2.4 入栈 2.5 出栈 2.6 获取栈顶元素

treesorshining的博客 2239

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

2021 王道考研 数据结构+习题讲解

2021 王道考研 数据结构 P1【2021版】0.0 课程指南 P2【2021版】1.1.0 开篇_数据结构在学什么 P3【2021版】1.1.1 数据结构的基本概念 P4【2021版】1.2.1 算法的基本概念 P5【2021版】1.2.2 算法的时间复杂度 P6【2021版】1.2.3 算法的空间复杂度 P7【2021版】2.1_线性表的定义和基本操作 P8【2021版】2.2.1_顺序表的定义 P9【2021版】2.2.2_1_顺序表的插入删除 P10【2021版】2.2.2_2_顺序表的查找 P1

weixin_47312141的博客 4万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

《王道》数据结构代码实现与笔记

陆续更新至2022年12月底。 这篇Blog,简单的做个学王道数据结构的笔记,为了以后能快速回顾,笔记做得不好,见谅。 文章目录一、线性表1.顺序表的顺序表示1.1顺序表-静态数组1.2顺序表-动态数组2.顺序表的链式表示2.1单链表-带头结点2.2单链表-不带头结点 一、线性表 1.顺序表的顺序表示 1.1顺序表-静态数组 静态分配,大小不可改变 #include <stdio.h> #define MaxSize 10 // 定义最大长度 typedef struct { int

qq_34060370的博客 7975

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

24王道考研408数据结构代码整合(学习用)

define MaxSize 10 //定义最大长度//用静态的“数组”存放数据元素int length;//顺序表的当前长度}SeqList;//顺序表的类型定义(静态分配方式)//基本操作——初始化一个顺序表i

Ch_ensf的博客 1万+

王道数据结构课代表 - 考研数据结构 第三章 栈和队列 究极精华总结笔记

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 5996

王道考研数据结构代码总结(前四章)

本文包含王道考研讲课中所涉及的数据结构中的所有代码,当PPT代码和书上代码有所区别时以咸鱼的PPT为主,个人认为PPT上的代码比王道书上的代码要便于理解,此外,本博客也许会补充一些额外的代码进来(不仅受限于王道考研),408中冷门考点频出,应该会囊括所有涉及到的代码,这也是我的DS的第二轮复习,希望与大家共勉之,由于博客体量的问题,原先打算此文也将收录诸如os中的吸烟者问题等的一系列伪代码,具体看到时候本文字数而定。如果一篇博客放不下的话会拆分成为两三篇文章发布。

佛系更新 5570

【数据结构】【王道】【栈与队列】不带头结点链式队列的实现及基本操作(可直接运行)

代码】【数据结构】【栈与队列】不带头结点链队的实现及基本操作(可直接运行) #include #include typedef struct LinkNode { // 链式队列结点 int data; // 数据域 struct LinkNode *next; // 指针域 } LinkNode; typedef struct { // 链式队列 // 如果不设置尾指针,若要插入,遍历到队尾再插入,时间复杂度O(n) .........

treesorshining的博客 906

王道数据结构笔记03—栈与队列(C语言)

本笔记来源于b站王道考研白嫖课程,仅供个人以及大家学习使用

qq_28356977的博客 2158

【王道数据结构】第三章 栈和队列

【王道数据结构】第三章 栈和队列

weixin_48434658的博客 1420

《王道》数据结构笔记整理2022

数据结构第一章绪论1.1数据结构的基本概念1.2数据结构的三要素1.3算法的基本概念1.4算法的时间复杂度1.5算法的空间复杂度 第一章绪论 1.1数据结构的基本概念 1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。 2.数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。 3.数据对象:数

池鱼 27万+

【王道考研】王道数据结构与算法详细笔记(全)

线性表是具有相同数据类型的n(n>0)个数据元素的有限序列。(其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为)1. 存在惟一的第一个元素。2. 存在惟一的最后一个元素。3. 除第一个元素之外,每个元素均只有一个直接前驱。4. 除最后一个元素之外,每个元素均只有一个直接后继1.是线性表中的“第i个”元素线性表中的位序。2.是表头元素;是表尾元素。

强哥的微博 7万+

王道数据结构 | 第三章 栈、队列和数组

王道数据结构复习:第三章 栈队列数组

emmm_Yeah的博客 1044

王道数据结构-考研笔记

本数据结构笔记配合王道视频食用,效果更佳。若有条件,可彩印成册,涂写勾画,记出自己的笔记,内容若有错误,请见谅。本数据结构笔记内容绝大部分来自王道数据结构视频,部分来自《大话数据结构》,希望能够帮助到在考研路上的诸位。一路生花吧!

weixin_51297735的博客 6981
上一篇: 【数据结构】【王道】【栈与队列】循环队列的实现及基本操作(使用顺序队列)(可直接运行)
下一篇: 【数据结构】【王道】【栈与队列】不带头结点链式队列的实现及基本操作(可直接运行)
Silver  Star
Silver Star 新星创作者: 大数据技术领域 新星创作者: 大数据技术领域
博客等级 码龄7年 1万+粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silver Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值