b站数据结构
克莱因蓝。
努力努力!
展开
-
队列的表示
相关术语:原创 2022-06-18 22:34:41 · 233 阅读 · 1 评论 -
数据结构------栈和递归
递归的定义:1.若一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归的;2.若一个过程直接或间接地调用自己,则称这个过程是递归的过程。例如:递归求n的阶乘int Fact(int n){if(n==0)return 0;elsereturn n*Fact(n-1);}具有递归特性的数据结构与可递归求解的问题...原创 2022-05-12 08:45:58 · 346 阅读 · 0 评论 -
栈的表示和实现-------链栈的表示和实现
链栈的表示:.链栈是运算受限的单链表,只能在链表头部表示struct stacknode //栈的结点类型{SElemtype data;struct stacknode*next;}Linkstack;Linkstack*S;原创 2022-04-27 10:52:40 · 984 阅读 · 0 评论 -
栈的表示和实现---------顺序栈操作
顺序栈的表示:#define MAX 100typedef struct{SElemtype*top;//栈顶指针SElemtype*base;//栈底指针int stacksize;//栈可用最大容量}SqStack;图中top - base=2;看似是整数运算,其实是两个指针间位置的相减,得到两个指针间相差多少元素。(前提是这两个指针指向同一个数组)顺序栈的初始化:void CreateStack(SqStack*S)//构建空栈{S->base = (S.原创 2022-04-25 16:21:49 · 626 阅读 · 0 评论 -
栈的表示和操作的实现---------顺序栈的表示
栈的抽象数据类型定义:原创 2022-04-19 09:34:12 · 198 阅读 · 0 评论 -
栈和队列定义和特点-------栈和队列的介绍
。栈和队列是两种常用的,重要的数据结构。栈和队列是限定插入和删除只能在“端点”进行的线性表如果问题求解的过程具有“后进先出”的天然特性的话,则求解的算法中也必然需要利用“栈”...原创 2022-04-17 18:55:35 · 498 阅读 · 0 评论 -
双向链表的实现
双向链表:在每一个结点里面再添加一个指向其直接前驱的指针域prior,这样链表就形成了指向不同的两个链,故称为:双链表双链表的结构定义如下:typedef DoubleNode{Elemtype data;struct DoubleNode*prior;struct DoubleNode*next;}DN;双向链表的特点:双向链表的插入:算法描述:void shuangxiangLinked_List(DN *L,int i,Elemtype e)...原创 2022-04-16 17:11:16 · 860 阅读 · 0 评论 -
循环链表的实现
循环链表:是一种头尾相连的链表(表中最后一个结点的指针域指向头结点,形成一个闭环)注意:循环链表的优势:带尾指针循环链表的合并:(将Tb合并在Ta之后)算法描述:void Connect(ND*Ta,ND*Tb){//假设Ta,Tb都是非空的单循环链表p = Ta->next;//p存表头结点Ta->next = Tb->next->next;//Tb表头连接Ta表尾free(Tb->next);//释放Tb表头结点Tb-&g.原创 2022-04-16 15:18:17 · 460 阅读 · 0 评论 -
单链表的基本操作----------头插法/尾插法建立链表
步骤:1.在内存中找开辟一个空间,作为链表的头节点,将头结点滞空具体代码:L = (LinkList)malloc(sizeof(ND));L -> next = NULL;原创 2022-04-13 01:04:22 · 4738 阅读 · 0 评论 -
单链表基本操作--------删除第i个元素
.删除--------删除第i个结点{算法步骤}代码分析://删除第i个元素的结点void deleteNode(LinkList &L,int i){ND*P; //创建指向ND类型的指针pp = L; //指向头结点int j; //计数器,用于计算访问到的结点数。int e; //变量e用于存放删除结点的数据。while(p&&j<i-1) //判断是否不为空表,和计数点小于要删除的结点的前一个结点{ p.原创 2022-04-11 15:25:07 · 6827 阅读 · 0 评论 -
单链表的基本操作--------插入结点
插入-------在第i个结点前插入值为e的新结点( 算法步骤)思考:步骤1与步骤2能互换执行吗?先执行步骤2,再执行步骤1?原创 2022-04-11 14:05:03 · 1832 阅读 · 0 评论 -
单链表基本操作--------按值查找
按值查找-------根据指定数据获取该数据所在的位置(地址)算法分析:while(p&&p->data!=e) //循环条件:p指向data部分的值不等于e 或 p为非空{p = p ->next;j++; //第几个找到}if(p) = e;return j; //找到else return 0; //未找到...原创 2022-04-10 16:24:44 · 2167 阅读 · 0 评论 -
单链表的基本操作------取第i个元素(取值)
.知识回顾.取第i个元素(取值)但当我们要找的元素超过了表的长度(i = 15)p访问到第六个元素时,判断其next域为NULL则会停止查找。另外,如果像 i = -1 这样的元素是错误的,就不需要查找了。总结步骤:算法描述:...原创 2022-04-09 19:50:50 · 4143 阅读 · 4 评论 -
单链表基本操作的实现
.单链表的的初始化(带头结点的单链表)构造一个空表在内存中找到sizeof(LNode)的空间大小,用malloc分配出来,分配出来以后呢,转换为(LinKList*)类型。(LinKList*)是指向节点类型的指针...原创 2022-04-07 23:53:25 · 832 阅读 · 0 评论 -
单链表的定义
.线性表的链式存储结构结点链表 .单链表的定义和表示带头的单链表单链表的存储结构每个节点可以看似一个包裹,数据与地址被封装在一起例如,存储学生,学号,姓名,成绩的单链表节点类型定义如下...原创 2022-04-07 22:56:03 · 650 阅读 · 0 评论