手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
栏目导航
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
子栏目导航
Linux
Windows
CentOS
Ubuntu
Nginx
WebService
Scala
Memcache
Apache
Redis
Docker
Bash
Azure
Tomcat
LNMP
Shell
Ansible
KVM虚拟机
数据结构
鸿蒙系统
宝塔面板
服务器运维
网络安全
编程之家
数据结构
自己动手实现java数据结构二 链表
1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表。今天,要介绍的是线性表的另一种实现方式 链表。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表
作者:编程之家 时间:2020-10-24
《数据结构》实验报告
实验三:鞍点的查找 一.我的实验选题:鞍点的查找 二.实验主要内容和目的: 一:对查找的进一步了解及学习。 二:加深对鞍点的了解。输入一个二维数组,查找鞍点。 三.概要设计: (主要模块及相互关系) 主函数Main完成对程序的执行。 四.运用的存储结构说明: for(int c=0;c<5;c++) for(int d=0;d<5;d++) scanf("%d",&a[c][d]); 五.主要
作者:编程之家 时间:2020-07-27
《数据结构》中的哈希表实现的例子C语言
#用的是开放定址法处理冲突,线性探测再散列确定增量 #include<string.h> #include<ctype.h> #include<malloc.h> #include<limits.h> #include<stdio.h> #include<stdlib.h> #include<math.h> #define TRUE 1 #define FALSE 0 #define OK
作者:编程之家 时间:2020-07-27
自学《数据结构》的重点章节说明
有同学自学《数据结构》,由于《数据结构》的知识比较多、难点也比较多,但是对于不以通过考试为目的、而已加强软件开发技能的自学者来说,不是所有章节都需要学习,因此下面为这些同学划定一下重点。 针对的教材是《数据结构(C语言版)》(严蔚敏,吴伟民 编著) 下面的章节需要学习,其他章节可以不用学习: 第1章 绪论 1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表现与实现 1
作者:编程之家 时间:2020-07-27
《数据结构》递归算法
1、调用子程序的含义: 在过程和函数的学习中,我们知道调用子程序的一般形式是:主程序调用子程序A,子程序A调用子程序B,如图如示,这个过程实际上是: @当主程序执行到调用子程序A语句时,系统保存一些必要的现场数据,然后执行类似于BASIC语言的GOTO语句,跳转到子程序A(为了说得简单些,我这里忽略了参数传递这个过程)。 @当子程序A执行到调用子程序B语句时,系统作法如上,跳转到子程序B。 @子程
作者:编程之家 时间:2020-07-27
【数据结构】单链表
学习数据结构基础,如有错误,请指正 /*** 数据结构:链表的模拟 ***/ #ifndef __LINKLIST_H__ #define __LINKLIST_H__ typedef int ElemType; struct LinkNode{ ElemType item; LinkNode *next; }; class LinkList{ private: LinkNode *
作者:编程之家 时间:2020-07-27
【数据结构】排序算法一之直接插入排序,冒泡排序
排序算法在面试中是常见的,尤其是(插入排序,冒泡排序和快速排序),就抽个时间再复习一下排序算法吧 插入排序的基本方法是:每步将一个待排序的记录按其关键字的大小插入到前面已经排序的序列中的适当位置,直到每个记录都插入完毕为止。 1:直接插入排序 这是一种最简单的排序方法,它的基本思想是将待排序的记录分成两个部分,第一个部分已经排好序,第二个部分未排序好。排序中,每次都是从
作者:编程之家 时间:2020-07-27
【数据结构】排序算法二之交换排序之快速排序(QuickSort)
上一次学习了【【数据结构】排序算法(一)之直接插入排序,冒泡排序】今天重新学习了一下快速排序 快速排序是是属于交换排序的范畴,另外一种的交换排序的代表是冒泡排序(上面有冒泡排序的链接地址) 快排的基本思路其实还是挺简单的:我们从需要排序的数组从任取一个当做分界值(暂时称作n),把所有比n小的值放在n的左边,把大的放在n的右边。这样进行遍历一遍下来,就可以形成左右两个序列,左边的
作者:编程之家 时间:2020-07-27
【数据结构】排序算法:希尔、归并、快速、堆排序
排序算法 排序是非常常用,非常基本的算法。排序的方法有很多,比如插入排序、选择排序、希尔排序、归并排序、快速排序、堆排序。 本次试验重点实现:希尔排序、归并排序、快速排序、堆排序 插入排序 简单说就是每次选未排序的队列中最小的条目插入到已排序队列的最后: 选择排序 选择排序和插入有点像,是每次从拿未排序中的第一个条目插入到已排序中应该插入的位置: 希尔排序 希尔排序是插入排序的一种,是针对直接插入
作者:编程之家 时间:2020-07-27
【数据结构】栈
1.概述 1.1 简介 栈是一种极为常用的数据结构,有两种基本操作:push和pop,这两种操作都限制在栈顶。push是从栈顶压入元素,即入栈;pop是弹出栈顶元素,即出栈。在出栈时,要判断栈是否为空。 可以用静态数组来模拟栈,但编译时需要指定数组的大小,即栈的大小是固定的。还可以用类似链表的struct实现,不需要指定大小。 栈在C++的<stack>容器中全封装好了:.pop( )是出栈操作,
作者:编程之家 时间:2020-07-27
【数据结构】树
树结构——非线性结构组织数据。 直观地,树结构是以分支关系定义的一种层次结构。即树结构组织起来的数据具有层次关系。而这种特性的数据在计算机中应用的非常广泛。如:操作系统中的文件管理、数据库系统中的索引、编译系统中的语法树等数据都是用树形结构组织的。 一、树的概念 树定义为:树是有n(n大于等于0)个结点组成的有穷集合。在任意一颗非空树种: 有且仅有一个称为根(root)的结点; 当n大于1时,其余
作者:编程之家 时间:2020-07-27
【数据结构】二叉树、AVL树
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://www.voidcn.com/article/p-srsfcefa-vo.html 二叉树 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的每个结点至多只有二棵子树(不
作者:编程之家 时间:2020-07-27
【数据结构】冒泡排序
#include <stdio.h> //#include <string.h> void swap(int *a,int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } void BubbleSort(int *p, int n) { int i,j; for(i=0; i<n ;i++) { fo
作者:编程之家 时间:2020-07-27
【数据结构】选择排序
#include <stdio.h> //#include <string.h> void swap(int *a,int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } //void BubbleSort(int *p, int n) //{ // int i,j; // for(i=0; i<n ;i++)
作者:编程之家 时间:2020-07-27
【数据结构】直接插入排序
#include <stdio.h> //#include <string.h> void InsertSort(int a[], int n) { int i,j,t; for( i=1 ;i<n; i++) { t = a[i]; j = i-1; while( j>=0 && t<a[j]) { a[j+1] = a[j];
作者:编程之家 时间:2020-07-27
【数据结构】希尔排序
希尔排序的原理参见,维基百科,http://zh.wikipedia.org/wiki/希尔排序,这里给出源代码。 #include<stdio.h> void ShellSort(int a[], int n) { int i,j,k,temp,gap; int gaps[]={1,5,13,43,113,297,815,1989,4711,11969,27901,84801,
作者:编程之家 时间:2020-07-27
【数据结构】堆排序
参考一篇文章: http://www.cnblogs.com/dolphin0520/archive/2011/10/06/2199741.html 另外,在下面的链接下还有动画演示: http://sjjp.tjuci.edu.cn/sjjg/DataStructure/DS/web/flashhtml/duipaixu.htm 下面是源代码: /*堆排序(大顶堆) 2011.9.14*/
作者:编程之家 时间:2020-07-27
【数据结构】归并排序
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。(维基百科) 参考文章: http://www.voidcn.com/article/p-ccwctxoe-yt.html 下面是具体代码: #include <stdio.h> #define true 1 #define
作者:编程之家 时间:2020-07-27
【数据结构】快速排序
参考维基百科: 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 从数列中挑出一个元素,称为 "基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操
作者:编程之家 时间:2020-07-27
【数据结构】静态链表
#include "string.h" #include "ctype.h" #include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define
作者:编程之家 时间:2020-07-27
【数据结构】
双向链表的添加、查找、删除算法 前段时间看一个很早前写的驱动,发现对双向链表的操作还有BUG,删除时会蓝屏,修正了一下,把修正后的代码贴出来,方便日后使用前直接复制,大牛不用看了。 typedef struct _FILELIST { LIST_ENTRY ListEntry; WCHAR wFilePath[260]; }FILELIST,*PFILELIST; FILEL
作者:编程之家 时间:2020-07-27
【数据结构】图
图是一种更为复杂的数据结构,在数据结构中,数据元素之间的关系存在着3种关系: 线性结构 树结构 图结构 前面学习了线性结构(链表、栈、队列)和树结构(二叉树等)。以下对图结构进行学习。 一、图的概念 图(Graph)是由顶点的非空有限集合V(N大于0个顶点组成)与边的集合E(顶点之间的关系)所构成的。 若图G中每一条边都没有方向,称图G为无向图。 若图G中每一条边都有方向,称图G为有向图。 二、图
作者:编程之家 时间:2020-07-27
【数据结构】线性表
线性表的头文件与储存结构: #include<string.h> #include<malloc.h> /* malloc()等 */ #include<stdio.h> /* EOF(=^Z或F6),NULL */ #include<stdlib.h> /* atoi() */ #include<math.h> /* floor(),ceil(),abs() */ /* 函数结果状态
作者:编程之家 时间:2020-07-27
【数据结构】队列
1.介绍 1.1 队列 与栈一样,队列(queue)也是一种基本的数据结构,也有两种的基本操作:push和pop;与栈不一样的是,操作限制在队列的两端。push是从队尾(rear)插入元素,即入列;pop是从队首删除元素,即出列。在出列过程中,要判断队列是否为空。队列可以用数组进行模拟,也可以用链表作为存储。 1.2 优先级队列 有一种特殊的队列:优先级队列,根据元素的优先级删除元素。比如,优先级
作者:编程之家 时间:2020-07-27
【数据结构】二叉树
1.介绍 二叉树与树的差别是,二叉树中任意节点的度不超过2。二叉树是一种有序树,即左右子树之间有顺序关系,规定为左前右后。 二叉树的表示:顺序表示,链式表示。顺序表示有致命的缺点:对二叉树的中间节点进行插入、删除操作时,必须相对应地调整数组中数据的位置。链式表示克服了这些缺点,所以一般采用链式表示存储二叉树。 二叉树的遍历分为前序(preorder)、中序(inorder)、后序(postorde
作者:编程之家 时间:2020-07-27
【数据结构】之二叉树的java实现
二叉树的定义: 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。 这个定义是递归的。
作者:编程之家 时间:2020-07-27
【数据结构】之队列的java实现一
队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾,每次离开的成员总
作者:编程之家 时间:2020-07-27
【数据结构】链表
1. 概述 链表由一系列的节点组成,这些节点不必在内存中连续存储;节点包含两部分:值(key)和指向后继节点的链(link),常称之为next指针。链表形式如下所示: 最后一个节点的的next指针指向null。 2. 基本操作 插入操作:需要修改前后元素的next指针的指向 删除操作:修改一个next引用即可实现。 3. 问题 3.1 POJ 3750 本题是一个简化的Joseph问题。 思路:创
作者:编程之家 时间:2020-07-27
【数据结构】二叉查找树
1、概念: 二叉查找树,也称排序二叉树,是指一棵空树或者具备下列性质的二叉树(每个节点都不能有多于两个儿子的树): 1. 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 2. 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 3. 任意节点的左、右子树也分别为二叉查找树 4. 没有键值相等的节点 从其性质可知,定义排序二叉树树的一种自然的方式是递归的方法,
作者:编程之家 时间:2020-07-27
【数据结构】堆排序
#include<iostream> using namespace std; //大顶堆 template<typename Type> void HeapAdjust(Type *array,int i,int size) { int lchild = 2*i+1; //i元素的左孩子节点 int rchild = 2*i+2; //i元素的右孩子节点 int max = i;
作者:编程之家 时间:2020-07-27
上一页
1
2
3
4
5
6
7
8
下一页
小编推荐
热门标签
更多
python
JavaScript
java
HTML
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot
react-native