自然语言交流系统 phxnet团队 创新实训 个人博客 (一)
项目涉及链表操作,遂整理:
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。程序语言或面向对象语言,如C,C++和Java依靠易变工具来生成链表。
public static SortedList mergeList(SortedList list1, SortedList list2){
SortedList list = new SortedList();
Link link = new Link(0l),current1,current2,link2;
current1 = list1.first;
current2 = list2.first;
link2 = link;
while(current1 != null && current2 != null){
if(current1.dData >= current2.dData){
link.next = current2;
current2 = current2.next;
} else {
link.next = current1;
current1 = current1.next;
}
link = link.next;
}
list.first = link2;
list.remove();
return list;
}
package com.jim.test;
//链表类
class Link {
Node head = null;
Node point = null;
Node newNode = null;
public int count = 0;// 统计值
// 插入
public void addNode(int t) {
newNode = new Node();
if (head == null) {
head = newNode;
} else {
point = head;
while (point.next != null) {
point = point.next;
}
point.next = newNode;
}
point = newNode;
point.vlaue = t;
point.next = null;
count++;
}
// 返回值
public int getValue(int i) {
if (head == null || i < 0 || i > count)
return -999999;
int n;
Node temp = null;
point = head;
for (n = 0; n <= i; n++) {
temp = point;
point = point.next;
}
return temp.vlaue;
}
}
//节点类
class Node {
int vlaue;
Node next;
}
public class Test {
public static void main(String[] args) {
//H1=(23,45,67,89,90,123,145)
Link link1=new Link();
link1.addNode(23);
link1.addNode(45);
link1.addNode(67);
link1.addNode(89);
link1.addNode(90);
link1.addNode(123);
link1.addNode(145);
Link link2=new Link();
//H2=(1,34,65,88,98,123,146,234,366)
link2.addNode(1);
link2.addNode(34);
link2.addNode(65);
link2.addNode(88);
link2.addNode(98);
link2.addNode(123);
link2.addNode(146);
link2.addNode(234);
link2.addNode(366);
//H3
Link link3=new Link();
int i=0,j=0;
while(i<link1.count && j<link2.count){
//依次扫描通过H1和H2的元素,比较当前的元素的值,将较小值的元素赋给H3
while(link1.getValue(i)<=link2.getValue(j)){
link3.addNode(link1.getValue(i));
i++;
}
while(link1.getValue(i)>link2.getValue(j)){
link3.addNode(link2.getValue(j));
j++;
}
//链表H1已经遍历完成,将链表H2余下内容赋给链表H3
if(i==link1.count-1){
while(j<link2.count){
link3.addNode(link2.getValue(j));
j++;
}
}
//链表H2已经遍历完成,将链表H1余下内容赋给链表H3
if(j==link2.count-1){
while(i<link1.count){
link3.addNode(link1.getValue(i));
i++;
}
}
}
//打印H3
for(int k=0;k<link3.count;k++){
System.out.print(link3.getValue(k)+", ");
}
}
}
自然语言交流系统 phxnet团队 创新实训 个人博客 (一)的更多相关文章
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (五)
有关我们这个项目:智能自然语言交流系统,所借鉴的技术有: 第一:我们使用了科大讯飞的在线语音转换,涉及的有文本传给云端服务器的文字转换成语音和本地的语音上传给服务器转换成文字. 涉及的相关的代码有: ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)
刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (二)
基本要求 打开软件,即可进入2D文本交流界面, 软件此时已经连接到服务器,点击文本输入框输入你想说的话,点击发送按钮即可进行交流,点击CHAT和STUDY分别切换到聊天模式或是学习模式,聊天模式是机器 ...
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (十一)
名思义是 给游戏场景 添加一个 天空背景 让游戏更加精美,更具有魅力 添加天空盒 有两种方式 1 : 在当前相机上添加skybox 2 : 在当前场景上添加skybox 上面的两种方式的结果是一 ...
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (九)
情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解为用户对某客体表达自身观点 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十四)
项目技术借鉴报告: 一.服务器端(Server) 1.分词 分词使用的是庖丁分词.使用盘古分词词库和词素作为辅助.其中包括下载Jar包并且使用. 2.人工神经网络 以网上已有的初级网络为蓝图,结合机器 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十三)
对我们项目中的关键技术实现进行总结: 一.3DMax关键技术实现 1.一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. 2. 骨骼架设:首先对导入到3DM ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十二)
关于情感词典的学习总结: 情感倾向可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.它由两个方面来衡量:一个情感倾向方向,一个是情感倾向度. 情感倾向方向也称为情感极性.在微博中,可以理解 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)
3DMax方面所涉及的专业知识: (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先 ...
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (四)
关于项目中个使用到的自然语言语音转文字&文字转语言的个人总结: VOICE_NAME, "xiaoyan");speechSynthesizer.setParameter( ...
随机推荐
- POJ 3670 Eating Together 二分解法O(nlgn)和O(n)算法
本题就是一题LIS(最长递增子序列)的问题.本题要求求最长递增子序列和最长递减子序列. dp的解法是O(n*n),这个应该大家都知道.只是本题应该超时了. 由于有O(nlgn)的解法. 可是因为本题的 ...
- MIME类型释义--MIME类型大全--web.xml中有关<mime-mapping>配置说明
最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识 ...
- C语言:冒泡排序法:将若干字符串按字母顺序(由小到大)排序输出
#include<stdio.h> #include<string.h> void sort(char *a[]); void print(char *a[]); int ma ...
- Java 并发多线程处理优秀博文整理
多线程(11)-Fork/Join-Java并行计算框架 推荐理由:Java在JDK7之后加入了并行计算的框架Fork/Join,本文是对其讲解 分解和合并:Java 也擅长轻松的并行编程! 推荐理由 ...
- 如何创建自己的ruby gem包
编写一个最简单的例子 1. 建好如下文件夹 注意:lib目录下必须有个和你gem名字一样的rb文件. $ cd hola $ tree . ├── hola.gemspec └── lib └── h ...
- 服务器swap
交换区(swap)是存在于高速存储设 备上的一块区域,是虚拟内存系统重要的组成部分.通过交换区,我们不再局限于有限的物理内存空间,理论上可以无限地扩大虚拟内存系统,从而运行更多的程 序,进行更多的业务 ...
- cocos2d-x笔记 ccTouchesBegan、ccTouchesMoved、ccTouchesEnded
#ifndef __MUTITOUCHTEST_H__ #define __MUTITOUCHTEST_H__ #include "../testBasic.h" class Mu ...
- 更改datatables的分页切换时的'processing'提示信息的式样
jquery.dataTables.css .dataTables_wrapper .dataTables_processing { position: absolute; top: 50%; lef ...
- LeetCode: ZigZag Conversion 解题报告
ZigZag ConversionThe string "PAYPALISHIRING" is written in a zigzag pattern on a given num ...
- javascript 中XMLHttpRequest 实现前台向后台的交互
使用XMLHttpRequest对象分为4部完成: 1.创建XMLHttpRequest组建 2.设置回调函数 3.初始化XMLHttpRequest组建 4.发送请求