- 2024-10-28UDT(三):T发送缓冲区管理
1.简介使用堆空间来保存发送缓冲区发送缓冲区中的数据按块进行管理,读写数据时,数据块是基本的读写单元使用一个循环链表来管理发送缓冲区中的数据块发送缓冲区可以动态扩容,并且受到UDT流量控制机制的限制,避免了发送缓冲区无限扩容的bug2.发送缓冲区源码分析相关文件:buff
- 2024-09-072.C_数据结构_线性表
线性表的描述线性表就是若干数据的一个线性序列。数学表达式:L:表名a0~an-1:数据元素n:表长,n>0是为非空表二元描述形式:D:数据元素D用ai表示,这个i范围是0~n-1R:关系用R表示,这个关系是<ai,ai+1>,表示ai为ai+1的直接前驱,ai+1为ai的直接后继。<xxx1,xxx2>:这符号称为有序对
- 2024-09-04数据结构——单链表查询、逆序、排序
1、思维导图2、查、改、删算法//快慢排序法找中间值intmid_link(Link_t*plink){Link_Node_t*pfast=plink->phead;Link_Node_t*pslow=pfast;intm=0;while(pfast!=NULL){pfast=pfast->pnext;++m;if(m%
- 2024-08-29数据结构:双向链表
目录结构体创建链表插入链表头插法尾插法 遍历打印删除更新查找销毁结构体typedefintDataType;typedefstructnode{structnode*pPre;DataTypedata;structnode*pNext;}LinkNode;创建链表LinkNode*CreateDouList(){LinkNode
- 2024-08-28数据结构——单向链表
链表1.空间可以不连续(理论上长度是无限的)2.访问元素不方便3.链表需要更大的空间存放数据和节点地址4.链表的插入和删除效率很高O(1)单向链表无头单向链表,节点插入在头的话,每次头结点都会变,所以有了有头链表,头结点的pNext总是指向链表的第一个节点1.创建空链表//创建空
- 2024-08-19山东大学计算机导论与程序设计基础实验11-12
A:实验11斐波那契序列题目描述使用递归法求斐波那契序列第n项的值。斐波那契序列的定义:f(n)
- 2024-07-14[C++]哈希
一、概念在顺序结构以及平衡树中,元素关键码(key)与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码(key)的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log2N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一
- 2024-06-05C语言数据结构实现-单链表表基本操作
链表插入元素同顺序表一样,向链表中增添元素,根据添加位置不同,可分为以下3种情况:插入到链表的头部(头节点之后),作为首元节点;插入到链表中间的某个位置;插入到链表的最末端,作为链表中最后一个数据元素;虽然新元素的插入位置不固定,但是链表插入元素的思想是固定的,只需做以下两步操
- 2024-04-22del
删除链表的任意位置//删除任意位置boolLLsit_Del(LList_t*Head,intdest){ intnum=0;//记录头结点和首结点 LList_t*Phead=Head; LList_t*Pnext=Head->next; //1.判断链表是否为空,如果为空,则直接插入即可 if(NULL==Head->next){ returnfalse; }
- 2024-04-12C语言实现split函数
#include<stdio.h>#include<string.h>voidmySplit(char*src,constchar*separator,chardest[][20],int*num){char*pPre=NULL;char*pNext=NULL;//记录分隔符数量intcount=0;//原字符串为空if(src==NULL||strle
- 2024-01-10学生管理系统单链表
#include"stdio.h"#include"stdlib.h"#include"string.h"#defineRD_NO(1<<0)#defineRD_NAME(1<<1)#defineRD_SEX(1<<2)#defineRD_SCORE(1<<3)//描述1个学生的属性structSTUDENT{
- 2024-01-10学生管理系统双链表
#include"stdio.h"#include"stdlib.h"#include"string.h"#defineRD_NO(1<<0)#defineRD_NAME(1<<1)#defineRD_SEX(1<<2)#defineRD_SCORE(1<<3)//描述1个学生的属性structSTUDENT{
- 2023-12-02学生成绩管理--C语言
#学生成绩管理系统效果1.菜单选项voidwelcome()//菜单{printf("欢迎使用学生管理系统\n");printf("1.增加学生信息\n");printf("2.展示学生信息\n");printf("3.删除学生信息\n");printf("4.修改学生信息\n");printf("
- 2023-06-19单链表(双指针)
#include<stdio.h>#include<stdlib.h>#include<time.h>typedefstructNode{intvalue;structNode*pNext;}Node;/*打印链表*/voidshow_data(Node*head){if(head==NULL){return;}Node*cur=head;
- 2023-03-12字符串匹配之KMP算法中的pnext表
pnext表的分析上篇我们提到了最后是构建一个pnext表,记录着每个字符匹配需要移动的长度的位置信息,接着上篇的内容,我们来分析下pnext表的构造。还是举个栗子:ababcabcacb
- 2023-02-26迭代器
1#pragmaonce2#include<assert.h>3template<typenameT>4classCList5{6private:7//链表的结点8typedefstructtagNode9
- 2023-02-16DS-单链表:在单链表中元素值等于key的所有结点前插入一个元素值为x的新结点
一、定义单链表结构代码:typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_lin
- 2023-02-16DS-单链表:单链表头删法
一、定义单链表结构代码:typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_lin
- 2023-02-16DS-单链表:指定位置删除结点
一、定义单链表结构代码:typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_lin
- 2023-02-16DS-单链表:删除指定元素值x的结点
一、定义单链表结构代码:typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_lin
- 2023-02-16DS-单链表:销毁单链表
一、定义单链表结构代码:typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_lin
- 2023-02-14单链表:在单链表中元素值等于key的所有结点前插入一个元素值为x的新结点
一单链表结构定义typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_linkNode*pnext;
- 2023-02-14单链表:删除单链表中第pos个结点
一、单链表结构定义typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_linkNode*pnext;
- 2023-02-14单链表:删除单链表中元素为x的第一个结点
一、单链表结构定义typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_linkNode*pnext;
- 2023-02-14单链表:删除单链表中元素值为x的所有结点
一、单链表结构定义typedefintlinkType; ///<定义链表结点数据域数据类型///@brief链表结点定义typedefstructt_linkNode{structt_linkNode*pnext;