java 数据结构之 顺序存储结构 串
2015-07-29 10:48
393 查看
package com.xdl.data_stru; /** * @author xudaolong 串的结构本质和char[]这种没什么区别; */ @SuppressWarnings("unused") public class Day_Four_SeqString { private char[] str; private int length; private void init(int max_num) { this.str = new char[max_num + 1];// 定义中的[]是元素的个数 str[0] = '\0';// 标志 this.length = 0; } // 赋值 private void assign(char[] ch) { this.str = new char[ch.length + 1]; for (int i = 0; i < ch.length; i++) { this.str[i] = ch[i]; } this.str[ch.length] = '\0'; this.length = ch.length; } // 赋值,和上面没什么差别; private void assign(Day_Four_SeqString s) { this.str = new char[s.length + 1]; for (int i = 0; i < s.length; i++) { this.str[i] = s.str[i]; } this.str[s.length] = '\0'; this.length = s.length; } /** * @param ch * 核心:忍法:替身术,追加在原有的str后; */ private void concat(char[] ch) { Day_Four_SeqString str = new Day_Four_SeqString(); str.assign(this.str); // 上面两句是为了保存已存在的str.然后重置,char[]在初始化的时候已经被设置固定了; this.str = new char[ch.length + this.length + 1]; for (int i = 0; i < this.length; i++) { this.str[i] = str.str[i]; } for (int i = 0; i < ch.length; i++) { this.str[i + this.length] = ch[i]; } this.length = this.length + ch.length; this.str[this.length] = '\0'; } //求子串 private Day_Four_SeqString substr(int start, int len) { Day_Four_SeqString str = new Day_Four_SeqString(); //以下条件对输入值 start 和 len 进行控制,触发一个就byebye了,哦,其实挺随意的; if (start <1 || start > this.length || is_null() || len >this.length -start +1) { str.init(0); return str;//空置 } str.init(this.length); for (int i = 0; i < len; i++) { str.str[i] = this.str[i+(start-1)]; //start 对应的下表是start -1; } return str; } //定位 private int index(char [] ch) { int i = 0,j = 0; while (i<this.length&& j<ch.length) { if (this.str[i]==ch[j]) { i++; j++; }else { i = i - j +1 ; j = 0; } } if (j == ch.length) { return i-ch.length+1; } return 0; } private boolean is_null() { if (this.length == 0) { return true; } return false; } public int getLen() { return length; } }
相关文章推荐
- 数据结构1-3 灯塔
- java 数据结构之 链式存储结构 队列
- java 数据结构之 顺序存储结构 队列
- 图结构练习——最小生成树
- cocos2d-x3.0数据结构
- 数据结构
- 数据结构基础温故-5.图(中):最小生成树算法
- 数据结构和算法学习笔记-2
- 数据结构之双向链表(JAVA实现)
- 数据结构---二叉树(1)
- 数据结构实验之队列一:排队买饭 SDUT
- HDU 5316 Magician(线段树区间合并入门)
- 黑马程序员——高新技术---Java基础-集合特点和数据结构总结
- 数据结构实验之二叉树的建立与遍历 SDUT
- 数据结构实验:连通分量个数
- HDU 1277 - 全文检索
- 进程01
- 数据结构和算法学习笔记-1
- 数据结构与算法学习目录
- java数据结构