数据结构与算法
gongdileidechouzhu
这个作者很懒,什么都没留下…
展开
-
线性表基本功能的c语言实现
#include<stdio.h>#define false 0#define ok 1#define maxsize 10//定义了线性表的结构typedef struct { int list1[maxsize]; int length;}sqlist;//初始化线性表int initlist(sqlist *l){ l->length = 0; r原创 2017-02-23 17:09:11 · 4760 阅读 · 0 评论 -
自己实现queue、stack
1、用数组实现的stack,包括动态调整大小,可迭代,泛型import java.util.*;public class arraystack<item> implements Iterable<item> { private item[] stack = (item[])new Object[1]; private int sizes=0; private void res原创 2018-04-13 10:57:02 · 293 阅读 · 0 评论 -
二叉搜索树
二叉搜索树需满足以下四个条件:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树;没有键值相等的节点。二叉搜索树的特点: 1、中序遍历一定是从小到大排列总体思路:先访问根,比根小访问左结点,比根大访问右节点public class searchTree { T原创 2018-04-10 11:35:43 · 192 阅读 · 0 评论 -
排序(二)堆排序、归并排序、快速排序
本文是是时间复杂度为O(nlogn)的排序算法堆排序思路:(以最大堆举例) 将数组array变成最大堆,array[0]则为数组中的最大数,调换array[0]和array[i](i为未排序的数组的末尾)。然后逐步减小i,即array[0]到array[i]为未排序的数组。先确定数组的末尾。public class mysort { public void sort(...原创 2018-04-15 16:51:26 · 293 阅读 · 0 评论 -
二分查找
public class test { public static int binSearch1(int[] array,int key) { int start=0; int end=array.length-1; int mid; while(start<=end) { mid=原创 2018-03-20 23:00:15 · 133 阅读 · 0 评论 -
单链表的基本操作c语言实现
#include<stdio.h>#define false 0#define ok 1//定义节点的结构typedef struct node{ int data; struct node *next;}node;typedef struct node *linklist;//初始化链表,创建一个链表并赋值void creatlist(linklist *l,int n原创 2017-02-25 16:14:53 · 11807 阅读 · 0 评论 -
队列(二)队列的链表存储
#include<stdio.h>#define false 0#define ok 1//定义队列每个节点的结构typedef struct node{ int data; struct node *next;}node,*qnode;//相当于typedef struct node * qnode;//定义整个队列结构typedef struct squeue{原创 2017-02-28 16:01:20 · 371 阅读 · 0 评论 -
队列(一)循环队列的线性存储
#include<stdio.h>#define false 0#define ok 1#define maxsize 5//定义一个队列结构typedef struct sqqueue{ int data[maxsize]; int front,rear;}sqqueue;//建立一个空队列void initqueue(sqqueue *l){ l->fro原创 2017-02-28 14:13:10 · 434 阅读 · 0 评论 -
栈(二)栈的链表存储
#include<stdio.h>#define false 0#define ok 1//定义链表栈的结构typedef struct sqstack{ int data; struct sqstack *next;}sqstack;typedef struct sqstack * linkstack;//建立一个空的栈void creatstack(linkstac原创 2017-02-28 13:16:30 · 330 阅读 · 0 评论 -
栈(一)线性存储栈的c语言实现
一、普通栈的实现,此时可能有大量空间上的浪费#include<stdio.h>#define maxsize 10#define false 0#define ok 1//定义堆栈的结构typedef struct sqstack{ int top; int data[maxsize];}sqstack;//建立一个空栈void creatstack(sqstack *原创 2017-02-26 14:41:00 · 654 阅读 · 0 评论 -
排序算法(一)冒泡排序,简单选择排序,直接插入排序,希尔排序
冒泡排序原创 2018-04-13 16:54:17 · 943 阅读 · 0 评论