数据结构
那年白马啸西风
纵有万般非吾属,伴得白马啸西风
展开
-
数据结构学习第10篇 - 排序算法的比较冒泡排序、直接插入排序、选择排序、希尔排序、快速排序、归并排序和堆排序
排序算法的比较 内排序的方法有许多,教材上面提到的有:冒泡排序、直接插入排序、选择排序、希尔排序、快速排序、归并排序和堆排序。请编写一简单应用程序,实现上述提到的各种排序算法。注意:1.需要输出每一趟排序的中间结果;2.为方便排序算法的比较,不同排序算法请使用相同数据。#include <stdio.h>#include <stdlib.h>#inc...原创 2019-04-04 10:01:06 · 1928 阅读 · 2 评论 -
数据结构学习第1篇 - 字符串的处理
2017年(大一下)学数据结构写的代码,学数据结构可以说是受益匪浅,这几天找了一下代码,放到csdn分享一下,也记录一下我的代码C语言复习1 1.实验类别:基础2.实验目的:(1)掌握C语言编写程序的方法(2)掌握指针的使用方法。3.实验主要内容:请设计一程序,实现如下功能:接收用户输入一组字符串,对于字符串中的每一个单词(单词之间以空格分割),首...原创 2019-04-03 22:03:22 · 197 阅读 · 0 评论 -
数据结构学习第2篇 - 结构体的定义及使用方法,动态内存管理
C语言复习21.实验类别:基础2.实验目的:(1)掌握结构体的定义及使用方法。(2)掌握C语言的动态内存管理。3.实验主要内容: 假设一个班由一名教师和若干学生(<=5人)组成,教师信息包括工号、姓名,学生信息包括学号、姓名和专业。请编写程序,用来模拟班级的管理(班级信息输出、查找学生(输出学生信息)、插入学生、删除学生)。要求:(1)老师、学生需定义为结...原创 2019-04-03 22:07:10 · 626 阅读 · 0 评论 -
数据结构学习第3篇 - 线性表的定义与实现
线性表的定义与实现1.实验类别:基础2.实验目的:(1)理解线性表的逻辑结构(2)理解数据结构的逻辑结构与存储结构之间的关系(3)掌握线性表的顺序存储结构和链式存储结构3.实验主要内容: 利用线性表的顺序存储结构和单链表,分别建立班级学生成绩单应用程序,要求能够插入、查找(按学号查找)、更新(修改成绩)和删除班级学生成绩的信息。例:班级成绩单 学 ...原创 2019-04-03 22:10:01 · 503 阅读 · 0 评论 -
数据结构学习第4篇 - 括号匹配问题
括号匹配问题1.实验类别:基础2.实验目的:(1)掌握栈定义及实现。(2)利用栈解决实际问题。3.实验主要内容: 假设一文本文件中保存有若干行代码,代码中有圆括弧()、方括弧[]和花括弧{}3种类型的括弧。编写程序,实现自动判别表达式中括弧是否正确匹配。要求:(1)从文件中读入内容。(2)要求能判断出以下几种情形:括号匹配、首次括号不匹配出现的位置...原创 2019-04-03 22:13:10 · 995 阅读 · 0 评论 -
数据结构学习第5篇 - 二叉树的建立与遍历
二叉树的建立与遍历如下图所示,通过输入该完全二叉树的顺序存储结构,程序自动建立该完全二叉树的链式存储结构,并利用链式存储结构实现对该二叉树的先序遍历、中序遍历、后序遍历和层次遍历。注意:1.程序启动时,由用户输入结点数量,并按顺序输入结点的值2.先序、中序遍历必须包含非递归实现# include <stdio.h># include <ma...原创 2019-04-04 00:08:53 · 673 阅读 · 0 评论 -
数据结构学习第6篇 - 哈夫曼编码问题 编码和解码
哈夫曼编码问题利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。根据哈夫曼编码的原理,根据用户输入的一段文本,请编程实现的哈夫曼编码的编码与解码过程,并给出该段文本的编码结果与解码结果。注意:1.测试文本可以预先存储在文件中2.叶结点的权重直接从文本中统计得出#include <stdio.h>#include <mall...原创 2019-04-04 00:11:57 · 3198 阅读 · 2 评论 -
数据结构学习第7篇 - 二叉搜索树
二叉搜索树二叉搜索树是二叉树的重要应用。请编写实现二叉搜索树的基本操作,主要包括:初始化(得到空二叉搜索树)、销毁(释放二叉搜索树的所有节点)、插入、查找(迭代和递归实现)、删除和遍历(前序和中序,分别迭代和递归实现)。注意:1.树中的元素可以是简单类型,如int类型2.通过不断插入元素可以得到二叉搜索树#include<stdio.h>#include&...原创 2019-04-04 00:16:41 · 240 阅读 · 0 评论 -
数据结构学习第8章 - 图的存储与遍历
图的存储与遍历如下图所示,首先按邻接矩阵的方法创建图并输出该图,然后再根据该图的邻接矩阵建立该图的邻接表存储结构,分别利用图的邻接矩阵和邻接表实现图的深度优先搜索(DFS)和广度优先搜索(BFS)。#include<stdio.h>#include<stdlib.h>#include<string.h>#define MaxVertexNum...原创 2019-04-04 00:25:14 · 501 阅读 · 0 评论 -
数据结构学习第9章 - 最短路径(Dijstra算法)
最短路径问题在《图的存储与遍历》的基础上,实现求最短路径的Dijstra算法,并将该算法用于求下图从顶点A到其它各顶点的最短路径,以验证算法的正确性。#include<stdio.h>#include<stdlib.h>#include<string.h>#define MaxVertexNum 20 ...原创 2019-04-04 00:36:10 · 477 阅读 · 0 评论 -
数据结构学习第11篇 - 二分查找算法
二分查找算法 编写程序构造一个有序表PL,从键盘接收一个关键字key,分别用线性查找法和二分查找法(递归实现和非递归实现)在PL中查找key,并输出具体的查找过程。若找到则提示查找成功并输出key所在的位置,否则提示没有找到。注意:1.n个元素有序表可以直接定义[0:n-1];(n>=60)2.必须在写清楚二分查找法的算法思想(自己组织语言描述)3.二分查找法必须实现迭...原创 2019-04-04 00:39:37 · 340 阅读 · 0 评论 -
数据结构学习第12篇 - 分治法和贪心法
分治法与贪心法(1)逆序对问题设A[1,….n]是一个包含n个不同非负整数的数组。若果i<j的情况下,有A[i]>A[j],则(A[i],A[j])就称为A中的一个逆序对。请设计一个时间复杂度不超过O(n*lgn)的算法并编程实现,统计任意长度的数组A中全部逆序对的个数。(2)最优合并问题给定k个有序序列s1 , s2,... , sk , 用2路合并算法将这k个序列...原创 2019-04-04 00:49:42 · 564 阅读 · 0 评论 -
数据结构学习第13篇 - 回溯法解决婚姻匹配问题
回溯法与分支限界法一、稳定婚姻问题(必做)有n对男女要配成n对夫妇,其中第i位男士对第j位女士的爱恋程度为p[i][j],第i位女士对第j位男士的爱恋程度为q[i][j],显然p[i][j]不一定等于q[j][i]。将他们组成n对夫妇,如果存在这样一个男男士和女士,这两人不是夫妇,但他们互相喜欢的程度胜过对自己的配偶的喜爱,这样的n对夫妇称为不稳定婚姻。如果不存在这样的男士和女士,则称为稳...原创 2019-04-04 00:57:43 · 1243 阅读 · 13 评论