
数据结构实验报告
大一下学期实验报告数据结构
花花叔叔
以后不更新了。
展开
-
图 无向网 采用邻接矩阵存储结构 按深度优先搜索和广度优先搜索遍历图 (DFS,BFS)实验报告 数据结构
基本内容:输入图的类型、顶点数、弧(边)数、顶点信息、弧(边)信息,建立相应的图(具体类型可以是无向图、有向图、无向网、有向网,采用邻接矩阵存储结构);分别按深度优先搜索和广度优先搜索遍历图;按某种形式输出图及遍历结果。代码:#include<stdio.h>#include<stdlib.h>#define MAXQSIZE 100//循环队列最大值 #define OVERFLOW -2#define FALSE 0#define OK 1#define MAX原创 2021-05-15 19:39:18 · 2671 阅读 · 0 评论 -
实验报告 线性表的基本操作及应用(单链表的创建,插入、删除、查找和打印算法)
1.实验名称线性表的基本操作及应用2.实验目的(1)掌握单链表的创建,插入、删除、查找和打印算法;(2)运用线性表解决线性结构问题。3.实验内容基本要求:(1)实现单链表的创建;(2)实现单链表的插入;(3)实现单链表的删除(4)实现单链表的查找;(5)实现单链表的显示;选作内容:两个线性表合并算法的实现。已知顺序表LA和LB中的数据元素按值非递减有序排列,现要将LA和LB归并为一个新的顺序表LC,且LC中的数据元素仍按值非递减有序排序。例如:LA=(3,5,8,11) LB=(2,6原创 2021-03-26 00:23:20 · 5717 阅读 · 0 评论 -
实验报告 抽象数据类型的表示和实现 (三元组) 实现对三元组的基本操作 创建 取值 置换 打印/销毁三元组等功能 数据结构(C语言版)
实验内容基本要求:设计实现抽象数据类型“三元组”,要求动态分配内存。每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组等。选作内容:实现两个三元组的对应分量相加或相减,给三元组的各分量同乘一个比例因子等操作。代码实现:#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0原创 2021-03-14 17:31:13 · 3687 阅读 · 2 评论 -
数据结构 查找 静态查找表算法 折半查找 二叉排序树查找算法 实验报告
未改进:#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef int keytype;typedef struct{ keytype key; int info;}ElemType;typedef struct { ElemType elem[MAXSIZE]; int length;}Sstable; int Search_Seq(Sstable ST,keyty原创 2021-06-02 21:42:50 · 4784 阅读 · 2 评论 -
实验报告 线性表的基本操作及应用(单链表的创建,插入、删除、查找和打印算法)修改之前i=i+1问题
修改之前的一些小毛病修改位置:在进行查找时将指针p直接指向L->next,避免使用i=i+1打印删除元素的数据域查找和删除元素时,P=L,不能出现P=P->next,因为插入删除时可以是在第一个有效数据节点之前,此时的j要保持j=0;#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0typedef int Status;typedef float ElemType;typedef原创 2021-03-31 17:37:28 · 1629 阅读 · 5 评论 -
循环队列基本操作 (插入,删除,创建 长度)
代码实现:#include<stdio.h>#include<stdlib.h>#define MAXQSIZE 100#define OVERFLOW -2#define FALSE 0#define OK 1typedef int Status;typedef float QElemType;typedef struct{ QElemType *base; int front; int rear;}SqQueue;//创建空队列 Status In原创 2021-03-31 19:37:41 · 4422 阅读 · 4 评论 -
实验报告 抽象数据类型的表示和实现 (三元组) 实现对三元组的基本操作 动态分配 (更新)增加菜单功能
1.实验名称抽象数据类型的表示和实现2.实验目的(1)复习巩固C语言的结构体、指针、函数、动态分配内存等知识点。(2)掌握抽象数据类型的定义、表示和实现,为后续实验打好基础。3.实验内容基本要求:设计实现抽象数据类型“三元组”,要求动态分配内存。每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组等。选作内容:实现两个三元组的对应分量相加或相减,给三元组的各分量同乘一原创 2021-03-19 09:51:46 · 3664 阅读 · 2 评论 -
KMP算法(kmp) next数组算法解析
关于KMP算法,优快云上面有很多优质的博文,我这里尽力用最简短的术语解释KMP算法KMP算法的精髓在于next数组,首先解释next数组中的值代表的意义:eg:a b a c next【4】指在第四元素之前的三个元素中,前缀和后缀相同的最大长度为1+1=2,所以next【4】=2;(关于前缀和后缀的问题,优快云有很多优质的博文去解释这个问题,我相信她们比我解释的好)(前缀和后缀相同的最大长度为1,但是得再加1,原因是要进行匹配,所以都得在最后加上1)(next【0】数组没有实际意义,模原创 2021-04-03 20:48:48 · 7601 阅读 · 2 评论 -
栈 入栈 出栈 获取栈顶元素
#include<stdio.h>#include<stdlib.h>#define OK 1#define OVERFLOW -2 #define FALSE 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;typedef float SElemType;typedef struct{ SElemType *base; SElemType *top; int原创 2021-03-28 10:50:21 · 4183 阅读 · 0 评论 -
实验报告 线性表的基本操作及应用 选做内容 归并La和Lb为Lc
选作内容:两个线性表合并算法的实现。已知顺序表LA和LB中的数据元素按值非递减有序排列,现要将LA和LB归并为一个新的顺序表LC,且LC中的数据元素仍按值非递减有序排序。例如:LA=(3,5,8,11) LB=(2,6,9,15,20)。实验代码:#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0typedef int Status;typedef float ElemType;typede原创 2021-03-26 09:27:34 · 1737 阅读 · 1 评论 -
创建单链表 打印单链表 插入删除节点 查找功能
代码:#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0typedef int Status;typedef float ElemType;typedef struct LNode{ ElemType data; struct LNode *next; } LNode,* LinkList;LinkList s,r,P;Status i;//创建单链表 void CreatList原创 2021-03-21 16:11:22 · 607 阅读 · 2 评论 -
设计一个函数Max(LinkList L),实现通过一趟遍历确定单链表中值最大的结点,且返回该值。
#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0typedef int Status;typedef float ElemType;typedef struct LNode{ ElemType data; struct LNode *next; } LNode,* LinkList;LinkList s,r,P;Status i;//创建单链表 void CreatListTail原创 2021-03-20 15:20:23 · 3889 阅读 · 4 评论 -
头节点的作用
头结点位置:头节点作用:主要作用是对在第一个结点(储存第一个数据)之前插入时,代码可以与在中间插入时做到代码统一,若没有头结点,在第一个结点前插入时,头指针要实时更新。如果有头结点,头结点的next域实时指向第一个结点,这样的话头指针就可以不用再更新。第二个作用是,使得空表与非空表实现代码统一,若没有头结点并且为空表时,头指针为NULL,但如果有头结点时,不论是不是空表,头指针始终不为NULL。总之,头结点出现,可以实现代码的统一。...原创 2021-03-11 16:45:17 · 2747 阅读 · 0 评论 -
线性表的顺序表示和实现 (创建,插入,删除,查找)数据结构 严蔚敏(C语言版)代码实现
代码:(详解请看注释)#include<stdio.h>#include<stdlib.h>//动态分配需要的头文件#define LIST_INIT_SIZE 100#define LISTNCREAMENT 10#define OK 1#define FALSE 0#define OVERFLOW 2//溢出 typedef float ElemType;typedef int Status;//线性表动态分配内存的顺序存储结构 typedef struct原创 2021-03-12 20:20:22 · 2058 阅读 · 0 评论 -
三元组代码实现
数据结构 三元组代码实现:#include<stdio.h>#define OK 1#define ERROR 2typedef int Status;typedef float ElemType;typedef struct{ ElemType e[3];}Triplet;//创建 Status initTriplet(Triplet &T,ElemType v0,ElemType v1,ElemType v2){ T.e[0]=v0; T.e[1原创 2021-03-04 20:30:40 · 1397 阅读 · 1 评论