自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 单链表中的头指针初始化问题

以初始化单链表头节点为例,我们的目的是通过函数使得头指针指向头节点;头指针即头节点的地址;在进入函数前创建一个头指针Node*head此时仅仅创建了一个指针变量,此时根据语法,这是一个未指明地址指向的野指针,需对其进行初始化;此处我们选取函数对其进行初始化;首先需要一块固定大小的内存,可通过malloc或new获取;此函数返回分配空间的首地址;我们的想法是让head指向这一块空间;像这样能否直接传递指针呢?}像这样的话就陷入了和在初始化基本类型时的问题,即传递的不是head而是一个副本;...

2022-07-30 21:42:12 1387

原创 循环队列 C++ 实现

因此可以得出结论,入队列时,在队列未满时,元素入队,队尾元素。为解决假溢出问题,采用循环队列,循环队列即一种逻辑上的环状结构,但在物理空间上仍然为顺序存储,即数组。测试方案依次入队列至如下情况,此时将不能入队列,rear=7,front=0;出队列四次,入队列五次,此时队列已满;入队列代码size=MAX时队列已满,不能入队列;出队列四次,入队列两次,此时队头为4,队尾指针为1;表示队列已满,若队列未满,则入队列,入队列后若。表示队列已空,若队列未满,则入队列,出队列后若。...

2022-07-25 17:34:47 3410

原创 KMP 算法中的 next 数组

KMP 算法中对 next 数组的理解next 数组的意义此处 next[j] = k;则有 k 前面的浅蓝色区域和 j 前面的浅蓝色区域相同;next[j] 表示当位置 j 的字符串与主串不匹配时,下一个需要和主串比较的字串位置在 next[j] 处;有下图:若当前位置 j 与主串某一个字符不匹配,则下一次比较的是 K 与主串的当前位置,这个 K 也就是next[j];由于两个浅蓝色区域相同,因此 K 前面的区域肯定与主串相同,不需比较;如下图:由上图可知,K 前面的区域不需比较;next

2022-06-05 17:39:04 1414

原创 数据结构 栈的顺序和链式结构 C++实现

顺序存储结构的栈栈的定义const int MAXSIZE = 50;typedef int Elemtype;typedef struct{ Elemtype data[MAXSIZE]; int top;} SqStack;栈的初始化令栈顶指针 top 为 -1 即可;void InitStack(SqStack &S) { S.top = -1;}判断栈空bool StackEmpty(SqStack S) { if(S.top

2022-03-30 22:29:59 1799

原创 数据结构 单链表 C++ 实现

单链表单链表的定义typedef int ElemType;typedef struct LNode { ElemType data; LNode *next;} LNode, *LinkList;此处 LNode 强调一个结点,*LinkList 强调一个单链表的头指针,本例中只有头指针使用 *LinkList ;单链表的头指针和头节点若单链表没有头节点,那么单链表的头指针则指向链表的第一个元素;若由头节点,头指针指向头节点;例如头指针为 L;如果链表为空,则有 L ==

2022-03-25 10:26:39 3412

原创 数据结构 顺序表 C++实现

顺序表此处实现的顺序表为**第一个位置为 data[0] **的顺序表顺序表的定义为const int MAX = 50;typedef int ElemType;typedef struct { ElemType data[MAX]; int length;} SeqList; //data[0] 为第一个元素顺序表元素的插入在顺序表 L 位置 i 处插入元素 e需要注意的几个点:插入元素,插入位置范围为 1 ~ length +

2022-03-21 18:20:57 1216

原创 按数组顺序创建一个完全二叉树

按照数组顺序插入到二叉树中参考文章数组与二叉树的对应关系:一个结点在数组中的序号为 i,则其左孩子结点序号为 2 * i,右孩子结点序号为 2 * i + 1;根据这条关系,我们可以建立个按照数组顺序的二叉树;/*将数组 arr 按照顺序建立二叉树,i 为当前插入元素在数组中的位置,n 为数组元素个数,root 为本次插入的结点地址;这个函数的左右是将数组中 arr[i] 元素插入到地址为 root 的位置上,那么结点 root 的左孩子结点插入元素为 arr[2 * i],右孩子结点插入元素为

2022-02-14 21:39:56 2423

原创 后缀表达式 实现整数的四则运算(带括号和多位数处理) C++ 实现

中缀表达式转化为后缀表达式,并通过后缀表达式计算值中缀表达式转化为后缀表达式转化规则:设立一个操作符栈,用来存储操作符;设置一个数组或者队列用来存储后缀表达式(此处使用队列);从左到右扫描中缀表达式遇操作数直接加入到后缀表达式(此处即加入到队列末或数组末尾)注意一个操作数可能是多位,需要作为一个整体读入,例如 50 需要作为一个整体读入遇操作符 op入栈op 优先级高于栈顶优先级op 为 ( 直接入栈;出栈(出栈后元素添加到后缀表达式的末尾).

2022-02-11 20:40:17 1622

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除