自然语言交流系统 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( ...
随机推荐
- Service和广播联合更新UI的例子
sa111111 于 2010-11-19 10:56 发表在 [Android实例] [复制链接] [只看楼主] [上一主题] [下一主题] 在Android中,异步更新UI,通常我们会选用Ha ...
- Nginx 的线程池与性能剖析【转载】
正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为此,NGIN ...
- malloc/free 与 new/delete 比较
相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同. malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符.对于非内部数据类的对象而言,光 ...
- Git 基本分支规范
基本代码分支应该分为两类,一类是主要分支,包括线上主分支 Master 和开发主分支Develop:另一类是辅助分支,包括测试分支 Release,线上紧急修复分支 Hotfix,以及功能开发分支 F ...
- InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings In
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is s ...
- go系列之数组
数组 数组是同一类型元素的集合.例如,整数集合 5,8,9,79,76 形成一个数组.Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组.(译者注:当然,如果是 interface{} ...
- C 指针使用误区
/** *错误给指针赋常量 *知识点:指针存储内存地址 **/ #include <stdio.h>void main(){ //int *p_int = 123; //错误,不能直接给指 ...
- mini2440裸机音乐播放器(非常久曾经的笔记)
[这是好久曾经写的.有点乱,没时间整理.当做记录用的.] 图片粘贴失效.没上传图,想要的直接下载文档吧. 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(button上一首.下一首.播放. ...
- for循环中的break与continue
break: 跳出循环,执行for循环下面的语句.continue: 跳出本次循环,执行下次循环.
- php利用phpexcel导出数据
php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关 ...