随笔分类 - 数据结构与算法
摘要:#include<stdio.h>#include<stdlib.h> #define MAXLen 100 //最大节点数typedef char DATA;//元素类型typedef struct CBT{ DATA data; struct CBT *left;//左子树节点指针 struct CBT *right;//右子树节点指针}CBTType; CBTType *InitTree...
阅读全文
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h> #define QUEUELEN 15 typedef struct{ char name[10]; int age;}DATA; typedef struct{ DATA data[QUEUELEN]; int head; int tail;}SQType; SQType *SQTyp...
阅读全文
摘要:#include <stdlib.h>#include <stdio.h> #define MAXLEN 50 typedef struct{ char name[10]; int age;}DATA; typedef struct stack{ DATA data[MAXLEN+1]; int top;}StackType; StackType *STInit(){ StackType *p...
阅读全文
摘要:#include <stdio.h>#include <string.h>#include <stdlib.h> typedef struct{ char key[10]; char name[20]; int age;}Data; typedef struct Node //定义链表结构{ Data nodeData; struct Node *nextNode;}CLType; CLTyp...
阅读全文
摘要:本系列日志为操作练习代码,参考书《C/C++常用算法手册 》。 //顺序表 Sequential List#include<stdio.h>#include<string.h>#define MAXLEN 100 //定义顺序表的最大长度 typedef struct //定义节点类型{ char key[10]; //节点的关键字 char name[20]; int age;}DATA; ...
阅读全文
摘要:import java.util.Arrays;public class MergeSort { public static void mergeSort(DataWraper[] data){ System.out.println("开始排序:"); sort(data,0,data.length-1); } /*将索引从left到right范围的数组元素进行归并排序 * data 待排序数组 * left 待排序数组的第一个元素索引 * right 待排序数组的最后一个元素索引 */ private static void sort(DataWraper[] data,
阅读全文
摘要:import java.util.Arrays;public class ShellSort { public static void shellSort(DataWraper[] data){ System.out.println("开始排序:"); int arrayLength=data.length; int h=1; //按h*3+1得到增量序列的最大值 while(h<arrayLength/3){ h=h*3+1; } while(h>0){ System.out.println("====h的值:"+h+"===&q
阅读全文
摘要:import java.util.Arrays;public class BinaryInsertSort { public static void binaryInsertSort(DataWraper[] data){ System.out.println("开始排序:"); int arrayLength=data.length; for(int i=1;i<arrayLength;i++){ DataWraper tmp=data[i]; int low=0; int high=i-1; while(low<=high){ //找出low、high的中间
阅读全文
摘要:import java.util.Arrays;public class InsertSort { public static void insertSort(DataWraper[] data){ System.out.println("开始排序:"); int arrayLength=data.length; for(int i=1;i<arrayLength;i++){ //当整体后移是,保证data[i]的值不会丢失 DataWraper tmp=data[i]; //i索引处的值已经比前面所有值都大,表明已经有序,无需插入 if(data[i].compar
阅读全文
摘要:import java.util.Arrays;public class QuickSort { public static void quickSort(DataWraper[] data){ System.out.println("开始排序"); subSort(data,0,data.length-1); } //对data数组中从start到end索引范围的子序列进行处理, //使所有小于分界值的放在左面,所有大于分界值的放在右面 private static void subSort(DataWraper[] data, int start, int end) {
阅读全文
摘要:import java.util.Arrays;public class BubbleSort { public static void bubbleSort(DataWraper[] data){ System.out.println("开始排序"); int arrayLength=data.length; for(int i=0;i<arrayLength-1;i++){ boolean flag=false; for(int j=0;j<arrayLength-i-1;j++){ if(data[j].compareTo(data[j+1])>0)
阅读全文
摘要:import java.util.Arrays;public class HeapSort { public static void heapSort(DataWraper[] data){ System.out.println("开始排序"); int arrayLength=data.length; //循环建堆 for(int i=0;i<arrayLength-1;i++){ //建堆 buildMaxHeap(data,arrayLength-1-i); //交换堆顶和最后一个元素 swap(data,0,arrayLength-1-i); System.o
阅读全文
摘要:import java.util.Arrays;class DataWraper implements Comparable<DataWraper>{ int data; String flag; public DataWraper(int data, String flag) { super(); this.data = data; this.flag = flag; } public String toString(){ return data+flag; } @Override public int compareTo(DataWraper dw) { // TODO Aut
阅读全文
摘要:public class LinkList<T> { public class Node{ private T data; private Node next; public Node(){ } public Node(T data,Node next){ this.data=data; this.next=next; } } private Node header; private Node ...
阅读全文
摘要:public class LinkList<T> { public class Node{ private T data; private Node next; public Node(){ } public Node(T data,Node next){ this.data=data; this.next=next; } } private Node header; private Node ...
阅读全文
摘要:import java.util.Arrays;public class SequenceList<T> { private int DEFAULT_SIZE=16; //保存数组的长度 private int capacity; //定义一个数组用于保存顺序线性表的元素 private Object[] elementData; //保存顺序表中元素的当前个数 private int size=0; public SequenceList(){ capacity=DEFAULT_SIZE; elementData=new Object[capacity]; } public Se
阅读全文