数据结构基础
文章平均质量分 89
C语言实现下数据结构相关基础实验的代码及总结
秃头鸭鸭鸭
这个作者很懒,什么都没留下…
展开
-
【数据结构】多种简单排序方法的应用(C语言实现)
首先,判断0号下标元素是否和目标值相同,如果相同,直接返回0;如果不同,则我们将0号下标元素先保存起来,然后将目标值放到0号下标处;然后,我们从后向前查找,如果和目标值相同,则结束循环,否则向前走。1.现将InitList[]中的前半段记录用归并法排序后放在TempList[]的前半段中。2.再将InitList[]中的后半段记录用归并法排序后放在TempList[]的后半段中。请依次输入%d个数据:\n"请依次输入%d个数据:\n"请依次输入%d个数据:\n"请依次输入%d个数据:\n"原创 2023-04-10 17:42:49 · 215 阅读 · 0 评论 -
【数据结构】哈希表的创建、查找(C语言实现)
本次的实验要求弄清楚最关键的两个模块,即插入和查找,首先要有哈希函数生成映射地址、有哈希表保存元素,然后要有自己设定的解决冲突的办法,这个程序是采用向下挪动一个办法,直到找到为空的地方保存。在查找中也是,先要通过哈希函数生成映射地址,通过这个地址参看哈希表中时候有元素,考虑到会有冲突的产生,那么必须要通过循环查找,要么找到元素,要么直到为空跳出查找。这也是这个程序的难点所在。请依次输入需要存储的%d个整数\n"该整数存储在第%d个位置\n"请输入你要查找的整数:\n"第%d个整数为:\n"原创 2023-04-10 17:39:28 · 942 阅读 · 0 评论 -
【数据结构】二叉树的创建及遍历(C语言实现)
1. 当前要创建的节点值为'#',并且flag=1,说明当前节点的父节点的左右孩子已经创建完毕,应将栈顶元素出栈,如果出栈的元素与栈顶的元素的右孩子相同,说明当前节点的父节点的左右孩子也创建完毕。首先,我们对二叉树进行扩展,然后按先序遍历的顺序输入节点的信息,然后我们设置一个标志位flag,如果flag=0,创建当前节点的左孩子节点,当flag=1时,创建当前节点的右孩子节点。2. 当前要创建的节点值'#',并且flag=0,说明当前节点的父节点的左孩子已经创建完毕,转向创建右孩子,把flag置为1;原创 2023-04-10 17:34:58 · 1465 阅读 · 0 评论 -
【数据结构】串的模式匹配(C语言实现)
请输入目标T:\n"请输入模式P:\n"请输入目标T:\n"请输入模式P:\n"原创 2023-04-10 17:31:40 · 456 阅读 · 0 评论 -
【数据结构】利用顺序栈/链栈完成表达式求值(C语言实现)
利用顺序栈完成表达式求值(将字符型转换为整型)程序代码:#include#include#include#include#defineMAXSIZE100#defineElemTypechar#defineLENsizeofElemTypetypedefstructElemType* data;inttop;SqStack;原创 2023-03-29 20:01:18 · 2216 阅读 · 1 评论 -
【数据结构】线性表的应用之一元多项式的加法运算(C语言实现)
语句作用不同:在分支结构程序设计中用break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句;break语句可以用来从循环体内中途跳出循环体,即提前结束循环操作,接着执行循环下面的语句。continue语句是跳过循环体中剩余的语句而强制执行下一次循环操作。其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。用法不同:在循环语句中,break语句一般都是与if语句一起使用;break语句不能用于循环语句和switch语句之外的任何其它语句中。原创 2023-02-27 00:46:41 · 1169 阅读 · 0 评论 -
【数据结构】顺序表的创建、逆置、遍历(C语言实现)
(3)在函数内部声明的静态数组不可能通过函数返回,因为生存期的问题,函数调用完其内部变量占用的内存就被释放了。静态数组是在栈中申请的,而函数中的局部变量也是在栈中的,而new动态数组是在堆中的分配的,所以函数返回后,栈中的申请的内存被自动释放,而堆中申请的内存如果没有delete就不会自动释放。二者的作用不同,“=”的作用是将一个表达式的值赋给一个左值。(1)静态数组在内存中位于栈区,是在定义时就已经在栈上分配了固定大小,在运行时这个大小不能改变,如:int a[10];二者的含义不同,“=”是赋值号;原创 2023-02-27 00:32:05 · 1018 阅读 · 0 评论 -
【数据结构】单链表的创建、逆置、遍历(C语言实现)
实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传递给实参。所以本次实验我们传递给函数的是头结点的地址,使得函数通过地址找到头结点,并对头结点进行操作,而不能直接传递头结点,否则对头结点的操作将在函数结束时被释放。在本次实验中,我了解到结构体可以使用typedef函数,为算法代码的编写带来了极大的便利。struct LinkList 以及 struct LinkList* 均可用一个单词代替,使得主程序的编写更难出错,保持了较高的正确性,并且增加了程序的可读性。原创 2023-02-27 00:27:05 · 451 阅读 · 0 评论