数据结构与算法
tianzeyu1992
这个作者很懒,什么都没留下…
展开
-
使用java创建单链表
学习 数据结构教程(第3班) 李春葆 记录使用java实现c++代码 p39//节点类class Node{ public int data; // 数据域 public Node next; // 指针域}// 链表类 头插法建表class LinkListF{ public Node first; // 头结点 public LinkListF() // 构原创 2015-11-07 23:05:26 · 3809 阅读 · 0 评论 -
串的顺序存储结构
package MyString;class SqString{ final int MaxSize = 100; char data[]; int length; public SqString() { data = new char[MaxSize]; length = 0; } // 字符串赋值 char[] public void StrAssign(ch原创 2015-11-13 21:28:28 · 792 阅读 · 0 评论 -
例4.2 求顺序串中出现的第一个最长连续字符
package MyString;public class MaxChar{ public static void main(String args[]) { String s = "abbacccdddeee"; findMaxChar(s); } public static void findMaxChar(String s) { int max = 1;原创 2015-11-13 21:46:41 · 463 阅读 · 0 评论 -
栈应用2:走迷宫
1.起点设置为-1,防止重走起点 2.顺时针遍历每一个可走的方向 3.有路可走时,该方向的结点进栈保存为路径中的一步,并将迷宫数组中该结点设置为-1,防止重走该结点 4.无路可走的时候回溯,当前结点出栈,回到2 5.重复2,3,4直到找到终点,或者遍历完无路可走。 package Maze;//迷宫class Map{ //迷宫数组,外围加一道围墙,防止数组越界出现异常原创 2015-11-11 15:42:39 · 482 阅读 · 0 评论 -
队列应用2:求解迷宫问题,最短路径
package Queue;//迷宫class Map{ // 迷宫数组,外围加一道围墙,防止数组越界出现异常 public static int mg[][] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 }, { 1, 0, 0, 1, 0, 0, 0, 1, 0, 1原创 2015-11-13 10:11:22 · 5030 阅读 · 0 评论 -
菱形的输出
#include using namespace std; int main() { int i,j,k,line; cout cin >> line; for(i=1;i if(i { for(j=1;j if(j==line-i-1) for(k=0;k cou原创 2011-03-02 13:49:00 · 239 阅读 · 0 评论 -
队列应用1:求解报数问题
(1).问题描述: n个人从左向右编号1~n,然后从左向右报数“1,2,1,2,1,2...” 数到1的人出队,数到2的人立即站到队列的最右端 继续报数,直到所有人出列(2).数据组织:使用顺序队列(3)设计算法: 1.全部入队 2.出队一个,输出编号原创 2015-11-12 11:32:31 · 4742 阅读 · 0 评论 -
队列的顺序存储结构
队列 1.环形,队头front,队尾rear 2.队头所指的data位置不放值 3.队满条件:(rear+1)%MaxSize == front 4.队空条件:reat == front 5.指针都是逆时针走,+1 package Queue;import java.util.Scanner;class Queue{ final int MaxSize = 5; int原创 2015-11-11 16:44:45 · 449 阅读 · 0 评论 -
队列的链式存储结构
队列的顺序存储结构和链式存储结构的区别队列顺序存储结构链式存储结构实现方式数组array和索引indexNode类和Node.next引用长度MaxSize不限区别队头不放值,实际存MaxSize-1队头也可以放值原创 2015-11-12 10:00:23 · 405 阅读 · 0 评论 -
栈应用1:算术表达式求值
主要要理解后缀表达式是怎么由中缀表达式得来的 多写写算术表达式实际是怎么运算的(顺序) 后缀表达式是怎么运算的 使用(来提升运算符的优先级 运算符总是跟在第二个操作元的后面package Evaluation;import java.util.Scanner;class Stack{ final int MaxSize = 10; char[] data = new cha原创 2015-11-11 11:08:17 · 862 阅读 · 1 评论 -
使用栈判断输入的表达式中括号是否配对
import java.util.Scanner;class LStack{ class Node { char data; Node next; } Node head; public LStack() { head = new Node(); } // 进栈 // 其实就是头插法建原创 2015-11-10 15:14:38 · 2020 阅读 · 0 评论 -
例3.4 使用栈判断回文
//栈类class Stack{ final int MaxSize = 10; char[] str;// 栈 int top; // 栈顶指针 public Stack() { str = new char[MaxSize]; top = -1; // 初始值为-1 } // 进栈 public vo原创 2015-11-09 16:50:43 · 668 阅读 · 0 评论 -
2.4线性表应用:计算任意两个表的简单自然连接-java
如果您发现代码有任何问题,请及时留言,或者QQ498442999与我讨论,期待与您一起进步~ 定义一个头结点保存表的行数和列数 且以一行数据为一个结点,如下图 import java.util.Scanner;class TableLinkList{ Scanner in = new Scanner(System.in); // 结点类 class Node {原创 2015-11-09 15:34:47 · 1289 阅读 · 0 评论 -
单链表-java
//链表类class LinkList{ // 结点类 class Node { int data; Node next; // 构造函数 Node() { } // 构造函数 Node(int data) {原创 2015-11-09 10:01:21 · 431 阅读 · 0 评论 -
双链表-java
如果您发现代码有任何问题,请及时留言,或者QQ498442999与我讨论,期待与您一起进步~//双链表class DLinkList{ // 结点类 class Node { int data; Node prior; // 前指针 Node next; // 后指针 Node() {原创 2015-11-09 11:43:09 · 298 阅读 · 0 评论 -
串的模式匹配:KMP算法
package KMP;public class Main{ public static void main(String args[]) { String s = "BBC ABCDAB ABCDABCDABDEABCDABDABD"; String t = "ABCDABDABD"; int i = KMPIndex(s, t); if (i == -1) Sy原创 2015-11-17 16:54:08 · 436 阅读 · 0 评论