数据结构
文章平均质量分 83
benzhaohao
这个作者很懒,什么都没留下…
展开
-
java利用链栈实现大数加法问题
【问题分析】1、将两个加数的相应位从高位到低位依次压如栈sa,sb2、若两个加数栈都非空,则依次从栈中弹出栈顶数字相加,结果存入partialsum; 若和有进位,则将和的个位数压入结果栈sum中,并将进位数1加到下一位数字相加的和中; 若和没有进位,则直接将和存入栈sum中3、若某个加数堆栈为空,则将非空栈中的站顶数字依次弹出与进位数相加,和的个位数压入s原创 2017-10-17 16:50:43 · 549 阅读 · 0 评论 -
java实现顺序,二分,分块查找
二分查找表一定要有序下面是具体实现代码import java.util.*;public class search { //顺序查找 public static int seqsearch(int[]a,int keytype){ if(a.length>0){ for(int i=0;i<a.length;i++){ if(a[i]==keytype) /原创 2017-12-31 19:46:43 · 2769 阅读 · 1 评论 -
java实现排序
package practice5;public class array { //直接插入排序 public static void insertsort(int[]table){ for(int i=1;i<table.length;i++){//n-1趟扫描,每趟将table[i]插入到它前面已排序的子序列中 int temp=table[i],j; for(j=原创 2017-11-23 22:05:52 · 229 阅读 · 0 评论 -
java创建优先级队列及增删改查实现
优先级队列是数据元素按优先级大小顺序排列,优先级高的总是排在队首。Node类在前面文章已经定义下面定义优先队列中结点的data类package practice1;public class priorityqdata { private Object elem; //结点的值 private int priority; //结点的优先级 public pr原创 2017-10-26 10:41:15 · 1479 阅读 · 0 评论 -
java创建树及实现遍历
树的存储结构有四种1、双亲链表存储结构(查找指定结点的双亲结点容易,但查找指定结点的孩子结点不容易)2、孩子链表存储结构3、双亲孩子链表存储结构4、孩子兄弟链表存储结构其中孩子兄弟链表存储结构中结点类的描述package practice4;public class cstreeNode { private Object data; //结点的数据域 private原创 2017-11-12 19:13:47 · 13187 阅读 · 2 评论 -
java由先根中根遍历序列建立二叉树,由标明空子树建立二叉树,有完全二叉树顺序存储结构建立二叉链式存储结构
//由先根和中根遍历建立二叉树 public class bitree{ public bitree(String preorder,String inorder,int preindex,int inindex,int count){ if(count>0){ //先根中根为空 char r=preorder.char原创 2017-11-10 16:53:11 · 5975 阅读 · 0 评论 -
java实现二叉树查找,统计结点个数,统计树的深度及判断两棵树是否相等
二叉树的建立在前面已经实现,现在只写子函数 public bitreeNode searchNode(bitreeNode t,Object x){ if(t!=null){ if(t.getdata().equals(x)) //对根节点进行判断 return t; else{ bitreeNode lresult=searchNode(t.getlc原创 2017-11-09 20:00:36 · 3168 阅读 · 0 评论 -
java编程实现学生成绩管理系统,采用顺序存储结构
学生成绩表如图所示问题分析:采用顺序存储结构,所以可以继承顺序表Sqlist(顺序表Sqlist的建立在之前写过了),简化类的描述。总体思路是先建立顺序表,然后进行增删改查的功能。一个结点中包含5个数据元素,所以建立StudentNode结点如下:import java.util.Scanner;public class StudentNode { private int number; ...原创 2017-10-14 19:44:31 · 11236 阅读 · 9 评论 -
java编程实现将两个有序单链表LA,LB合并成新的LA
问题分析:本题要求利用原有的单链表LA,LB中的结点来产生一个新的链表LA,新的单链表首先以LA的头结点为头结点构成一个空表,然后用尾插法将LA LB中的各结点按从小到大顺序插入到新形成的链表中。 插入过程中引入3个指针pa,pb,pc,其中pa,pb分别指向LA,LB中当前待比较的结点,pc指向新链表的当前最后一个结点。pa,pb初始值指向LA,LB的首结点,pc初始值指向LA头结点...原创 2017-10-13 09:38:22 · 7899 阅读 · 1 评论 -
java创建单链表及增删改查功能实现
单链表节点类描述如下public class Node { public Object data; //存放节点值 public Node next; //后继节点的引用 ,将data,next定义为public类型,就不需要get,set方法了 public Node(){ this(null,nul...原创 2017-10-12 11:24:32 · 3383 阅读 · 0 评论 -
java建立顺序表及增删改查功能实现
顺序表类的增删改查功能实现java语言描述package ch01;public class Sqlist { private Object listelem[]; //线性表存储空间 private int curlen; //线性表当前长度 public Sqlist(int maxsize){ curlen=0; ...原创 2017-10-11 21:17:07 · 3925 阅读 · 0 评论 -
java实现Brute-Force和KMP模式匹配
Brute-Force模式匹配算法从主串第start(i=start)个字符起,与模式串t的第一个字符(j=0)开始比较。若相等,则继续比较后面字符(i++,j++)若不相等,则从主串第二个字符起重新和模式串t比较(i=i-j+1,j=0)若都匹配成功,则返回模式串t第一个字符在主串的位置否则返回-1public int index_BF(IString t,int原创 2017-10-30 11:15:07 · 401 阅读 · 0 评论 -
java编程实现中缀表达式转变成后缀表达式并求和
一、算术表达式转换成后缀表达式1、若为‘(’则入栈2、若为‘)’则让栈顶元素依次出栈直到‘(’3、若为运算符,当栈为空,直接进栈,否则比较此运算符和栈顶运算符的优先级,若栈顶运算符优先级高,则加入后缀表达式,否则此运算符入栈4、若为操作数,直接加入后缀表达式5、最后将栈中剩余运算符加入后缀表达式二、计算后缀表达式的值1、若为操作数,直接入栈2、若为操作符,则出栈两个原创 2017-10-21 20:05:36 · 488 阅读 · 1 评论 -
数据结构:java创建串并实现增删改查功能
前言:java实现串的过程中遇到的问题1、当自己创建seqstring对象然后输出s时,会出现如下结果public class seqstring { private char[]strvalue; private int curlen; public seqstring(String str){ strvalue=str.toCha原创 2017-10-29 15:56:14 · 2611 阅读 · 2 评论 -
java创建二叉树并遍历
java在实现非递归先根,中根,后根遍历时需要用到链栈Linkstack类,实现非递归层次遍历需要用到链队列Linkqueue类,前面文章已经实现。下面实现二叉链式存储结构package practice3;public class bitreeNode { private Object data; //结点的数据域 private bitreeNode lchild,rchil原创 2017-11-07 10:23:38 · 1179 阅读 · 0 评论 -
java实现一元多项式加法
思路:多项式结点类描述:(Node结点,Linklist类的描述在创建单链表的文章已经实现)public class PolynNode { public double coef; //系数 public int expn; //指数 public PolynNode(double coef,int expn){ //构造函数 this.coef=coef; thi...原创 2018-03-15 17:19:51 · 4096 阅读 · 1 评论