- 博客(31)
- 收藏
- 关注
原创 数据结构之树的存储(C语言版)
之前,我们介绍的所有的数据结构都是线性存储结构。本章,我们所介绍的树的结构是⼀种⾮线 性的存储结构。存储的是具有⼀对多的关系的数据元素的集合。树的概念:图中可以看⻅⼀个使⽤树形结构存储的⼀个集合,这个集合就是{A,B,C.......}。对于数据A来 说,和数据B、C、D有关系。对于数据B来说,和E,F,G有关系。这就是⼀对多的关系。我们将⼀对多的关系的集合中的数据元素按照图中的形式进⾏存储,整个存储形状在逻辑结果上 ⾯看,类似于实际⽣活中倒着的树,所以就将这种结构称之为树形结构。
2023-05-26 15:08:32 836
原创 数据结构之双端队列链式存储(C语言)
先判断right指针所指向的pre指针指向是否为NULL(为空表示此结点前面没有任何结点)(循环判断s的地址是否和right指针所标记的空结点地址是否相同或者s结点地址是否为空)再让right指针所指向的结点的pre指针所指向的结点的地址赋给right指针。将右指针所指向结点地址赋给s(此时s结点即为此被指向的结点)再让right指针所指向的结点的next指针指向s结点。将s的pre指针指向right指针所指向的结点。s的next指针指向左指针所标记的结点。左结点指向s的next指针所指向的结点。
2023-05-20 16:51:01 323
原创 数据结构之双端队列的顺序表实现(C语言)
最后将待删除数据写入x(此时我们认为被右指针指向的数据为脏数据)如果没有满则先在对应下标写入数据(即下标0写入右边插入的数据)先判断左指针是否为0如果为0则说明没有左插的元素。再将左指针向前移动一位,并且取余判断循环。先定义一个变量x来写入待删除元素的数据。如果非空则先将待删除元素的数据写入x。先定义一个变量x用来保存待删除元素。定义一个指针(数组)用来存放元素。再将左指针对应下标位置写入数据k。再将size(实际元素个数)加一。如果不为0则循环打印左插的元素。如果没有满则将左指针减一。
2023-05-20 16:16:43 245
原创 数据结构之链式队列(C语言版)
如果分配成功后就让队首指针的下一个结点指向NULL(即头结点指向NULL)最后判断原队列是否只有一个结点(即判断队尾指针是否指向待删除的结点)再定义一个linkequeue结构体其中包含队头指针和队尾指针。之后再将结点的地址赋给队尾指针(即结点s变成了新的队尾)之后判空(即队首指针的头结点所指向的结点是否为空)如果是则要让队尾指针指向队首指针所指向的头结点。先定义一个链式队列结点(以链表结点形式实现)创建结点p并且将队首指针的头结点指向结点p。再创建一个结点s将数据写入结点。之后再让队尾指针指向结点s。
2023-05-16 23:33:37 200
原创 数据结构之顺序循环队列(C语言版)
创建队头指针和队尾指针来找到数组的头和尾(以索引下标形式表示指针)先判满(即判断q的队尾指针+1再对数组容量取余是否等于队头指针)传入q的指针进去先让q的队头指针和队尾指针为下标0。结构体中的date数组用来存储队列中的数据元素。将结构体q的数组date的队尾指针写入数据x。实现此循环队列通过牺牲一个单元来区分头尾。再用循环数组将队尾指针往后移一个或者循环。先判空(即判断队尾指针是否等于队首指针)再将队首指针往后移动一个位置或者循环。把队首指针处的数据写入x。
2023-05-16 23:06:03 102 1
原创 数据结构之链栈(C语言版)
使用 sstack* 声明链栈中的结点指针,意在强调操作对象是栈中的某个结点。使用 listack 声明链栈中的结点指针,意在强调操作对象是栈;链栈中无栈顶指针,如何实现在栈顶操作,实现先进后出。直接在链表表头进行操作,链表表头相当于栈顶。如果不为空则让p结点指向待删的首元结点。链表结点个数可以动态调节,无需判满。再让头结点指向p结点的下一个结点。以定义单链表的方式来定义链栈。之后再以单链表的形式进行头插。将首元结点的数据赋值给x。再让头结点指向NULL。链栈--单链表实现栈。
2023-05-14 20:28:22 111
原创 数据结构之顺序栈(C语言版)
先判断是否栈空(即栈顶指针是否为-1)如果不是栈满就让栈顶指针往后一格。之后就将栈顶指针往前挪动一个位置。如果不是栈空就将栈顶元素赋值给x。再将栈的下一个位置写入数据k。之后动态内存申请一块空间。再初始化栈顶指针为-1。date是栈中的元素。先创建一个栈的结构体。
2023-05-14 20:06:14 54
原创 带头节点的单链表(C语言版)
node表示是对结点的操作,*linkList是对整个链表的操作(注:linkList是Node*类型的)再创建一个结构体指针,指向头结点(不能直接指向l->next,要考虑空链表的情况)最后返回p(如果找到则返回p的地址,没找到则返回NULL,即遍历完还没找到)找到后让s结点指向指定结点前面的一个结点所指向的(即是指向指定位置的结点)(一定要先让s结点指向p结点的指向的结点,否则s结点就游离了)之后判定的条件是p!如果p不为空则打印p的数据再让p指向下一个结点。让前一个结点指向指定结点p所指向的结点。
2023-05-12 14:57:54 1200
原创 Java:简单的员工薪资系统
测试类先定义一个Manager类的boss,再定义一个Employee类的数组,之后一次给数组中每个元素赋值。子类比父类多增加了一个bonus数值,函数功能包括设置薪资以及设置津贴。父类中的函数功能包括:获取姓名,获取薪资,获取出生日期以及增加津贴。包含一个父类Employee和子类Manager。
2023-03-25 22:22:39 684
原创 Java:双色球原理
5个红球和0个蓝球或者4个红球和1个蓝球或者4个红球和0个蓝球则中200元。用户选择号码为1到33的红球(不可以重复),再选择号码1-16的。3个红球和1个蓝球或者2个红球和1个蓝球则中10元。1个红球和1个蓝球或者0个红球和1个蓝球则中5元。6个红球和1个蓝球则中1000w。5个红球和1个蓝球则中3000元。6个红球和0个蓝球则中500w。分为红球号码输入和蓝球号码输入。使用的函数:查找函数。
2023-03-14 22:32:02 525
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人