自然语言交流系统 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( ...
随机推荐
- Unix环境高级编程(十九)终端I/O
终端I/O应用很广泛,用于终端.计算机之间的直接连线.调制解调器以及打印机等等.终端I/O有两种不同的工作模式: (1)规范模式输入处理:终端输入以行为单位进行处理,对于每个读要求,终端驱动程序最多返 ...
- Unix环境高级编程(四)数据系统文件和信息
本章主要介绍了Unix系统的正常运行要使用的与系统有关的数据文件和信息.如:口令文件,阴影文件.组文件.附加组.系统标识.时间和日期历程. 口令文件,即Unix系统用户数据库,存储在/etc/pass ...
- [Android&Java]浅谈设计模式-代码篇:观察者模式Observer
观察者,就如同一个人,对非常多东西都感兴趣,就好像音乐.电子产品.Game.股票等,这些东西的变化都能引起爱好者们的注意并时刻关注他们.在代码中.我们也有这种一种方式来设计一些好玩的思想来.今天就写个 ...
- MySQL的binlog日志恢复(转)
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...
- Jeecg 如何执行批量insert或者update操作,高效率
方法:org.jeecgframework.core.common.dao.jdbc.SimpleJdbcTemplate.batchUpdate 原理: 基于springjdbc封装,批量提 ...
- 模拟HTTP请求获取返回值
package org.jeecgframework.core.util; import java.io.BufferedReader; import java.io.IOException; imp ...
- 启动vim不加载.vimrc
启动vim,不加载.vimrcvim -u NONE -N
- 【Android】12.4 利用Intent读取图库中的图片
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 该示例演示如何从图库(Gallery)中读取图像并用ImageView将它显示出来. 二.示例-ch1203Rea ...
- angular学习笔记(十三)
本篇主要介绍控制器的$scope中的数据是如何被改变的: 以下三种方法,都可以改变$scope中的number值: 1. 表达式: <span ng-click="number=num ...
- c语言double类型数据四舍五入
借助math库的round函数 #include <math.h> double ext_round(double data, int precision) { , precision); ...