电子地图管理系统
- 格式:doc
- 大小:79.00 KB
- 文档页数:18
#include <cstdio>#include <cstdlib>#include <>#include <cstring>#include <ctime>#include <string>#include <algorithm>#include <iostream>using namespace std;void start();void display();void displaypaixu();void displayjiansuo();Road *head = NULL;void SearchByClass(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0,Class;printf("请输入您所要查找的道路的番号:\n");scanf("%d",&Class);prev=p=(Road *)malloc(sizeof(Road));n",b-a);}void SearchById(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0,LinkId;printf("请输入您所要查找的道路的ID:\n");scanf("%d",&LinkId);prev=p=(Road *)malloc(sizeof(Road));n",b-a);}void SearchByName(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0;char Name[30];printf("请输入您所要查找的道路的名称:\n");scanf("%s",Name);prev=p=(Road *)malloc(sizeof(Road));n",b-a);}void updata(Road*head){FILE*pp;FILE*ppp;FILE*infile;FILE*outfile;time_t a;char filename[20];Road*p1;Road*p2;pp=fopen("","w");if(pp==NULL){printf("文件创建失败\n");exit(1);}.\n");printf("文件更新成功\n");fclose(ppp);n",b-a);}Road* readfile(void){FILE *fp;unsigned short temp_data_size[1]; ...."); time(&begin);head = BubbleSort( head );time(&end);i=end-begin;....");time(&begin);head=SelectSort( head );time(&end);i=end-begin;....");time(&begin);QListSort( &head ,NULL);time(&end);i=end-begin;. |\n");printf(" | |\n");printf(" | ");for(i=0; i<63; i++){printf(">");//此处用time函数来暂停秒以描述程序的加载过程start=clock();finish=clock();while((finish-start)<30)finish=clock();}printf(" ");printf("|\n");printf(" | Load successfully! |\n");printf(" | |\n");printf(" | |\n");printf("--------------------------------------------------------------------------\n");printf("\n 按任意键将进入系统 (Press any key to enter thesystem) \n ");printf("\n ");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);system("pause");}void display(){printf("----------------------请按照菜单提示输入您的选择-------------\n");printf(" \n");printf(" <1>【读取文件】\n");printf(" <2> 【排序】 \n");printf(" <3> 【检索】 \n");printf(" <4> 【更新】 \n");printf(" <0> 【退出】 \n");}void displayjiansuo(){printf(" ----------------------请按照菜单提示输入您的选择-------------\n");printf(" \n"); printf(" <1>【指定LinkID检索】\n");printf(" <2>【指定交叉link列表示class番号检索】\n");printf(" <3>【指定查找岔路数检索】 \n");printf(" <4>【指定道路名称检索】 \n");printf(" <0>【返回】 \n");}void displaypaixu(){printf("----------------------请按照菜单提示输入您的选择-------------\n"); printf(" \n"); printf(" <1>【冒泡排序】 \n");printf(" <2>【选择排序】 \n");printf(" <3>【快速排序】 \n");printf(" <0>【返回菜单】 \n");}。
CBTC系统电子地图升级管控方案研究陈 超(常州地铁集团有限公司,江苏常州 213000)摘要:列车集成控制技术发展以及轨道交通线网规模的逐渐扩大,线路基础设施改造、线路分段开通和线网之间互联互通需求越来越多,对电子地图的升级管控模式提出更高的要求。
分析现行CBTC 系统电子地图在数据准备、更新方式存在的不足,提出新的CBTC 系统电子地图升级的管控方案,以提高电子地图数据的可维护性、可靠性以及安全性。
关键词:电子地图;基于通信列车控制系统;移动授权;可维护性;可靠性;安全性中图分类号:U284.48 文献标志码:A 文章编号:1673-4440(2022)12-0089-04Research on Control and Management Scheme ofUpgrading CBTC System Electronic MapChen Chao(Changzhou Metro Group Co., Ltd., Changzhou 213000, China)Abstract: With the development of train integrated control technology and the gradual expansion of rail transit network, more and more demands have been put forward for the refurbishment of line infrastructure, the sectional commissioning of lines and the interconnection between line networks, which puts forward higher requirements for the control and management mode of upgrading electronic map. This paper analyzes the shortages in the way of data preparation and updating of the current Communication Based Train Control (CBTC) system electronic map and puts forward a new control and management scheme of upgrading electronic map to achieve higher maintainability, reliability and safety of electronic map data.Keywords: electronic map; CBTC; MA; maintainability; reliability; safetyDOI: 10.3969/j.issn.1673-4440.2022.12.018收稿日期:2022-09-13;修回日期:2022-12-05作者简介:陈超(1987—),男,工程师,本科,主要研究方向:城市轨道交通信号系统,邮箱:****************。
大家好,我是薛哥。
智能建筑管理系统(IBMS)现在是整个智能化系统中利润最高的一部分了,因为需要二次开发,报价区间比较大,对于这样的系统,我们要熟悉一下,今天的文章非常重要。
智能化弱电工程设计与施工弱电工程项目设计与施工,弱电施工方案探讨,安防监控技术问题讨论,智能化工程案例分享,弱电行业最新资讯01正文智能建筑管理系统(IBMS)1.1 功能简述XX医院智能化集成管理平台(以下简称IBMS平台)是该项目智能化系统的上层建筑,是该项目中所有智能化子系统的大脑,扮演着沟通者、监护者、管理者与决策者的角色。
它利用标准化/或非标准化的通讯接口将各个子系统联接起来,共同构建一个全设备、全空间、全时域、全过程的有机整体。
它通过统一的平台,实现对各子系统进行全程集中检测、监视和管理,同时将所有子系统的数据收集上来,存储到统一的开放式关系数据库当中,使各个原本独立的子系统,可以在统一的IBMS平台上互相对话,做到充分数据共享。
IBMS集成管理平台采用模块化架构,每个模块既可以完成相应的功能,每个模块即可独立完成相应的单一功能操作,又可与其它模块配合完成更加复杂的联合功能操作。
在XX医院的智能集成管理系统项目中的智能系统集成平台作为核心软件,有机地将各个子系统整合起来,集中监控,统一管理,使它们协调工作,共同为XX 医院创造一个舒适、便捷、绿色、安全的医疗、办公、修养环境。
在XX医院的智能集成管理系统项目中,我司将充分考虑项目前期规划的标段区域的具体需求,同时兼顾未来发展,IBMS集成管理平台预留其他系统接口功能,以便XX医院后期项目子系统及其他的分站可接入IBMS集成管理平台主系统。
充分发挥IBMS的特点与优势,使得IBMS一次投入,终身享用。
1.2系统设计XX医院智能化集成平台(以下简称IBMS平台)是通过一个统一的平台,实现对各子系统进行集中监视和管理,将所有子系统之间需要共享的数据收集上来,存储到统一的开放式关系数据库当中,使各个本来毫不相关的子系统,可以在统一的IBMS平台上互相对话。
电子地图电子地图系统是指在计算机软硬件的支持下,以地图数据库为基础,能够进行空间信息的采集、存储、管理、分析和显示的计算机系统。
电子地图系统由硬件、软件、数据和人员等部分组成。
这里着重介绍电子地图的软件组成与主要功能。
软件系统包括操作系统、地图数据库管理软件、专业软件以及其他应用软件。
在电子网络地图系统中地图数据库管理软件是它的核心,它具有构建,管理,检索查询,数据更新等功能:地图构建功能:允许用户根据设计方案选择内容、比例尺、地图投影、地图符号、颜色等,生产预想的地图,以满足需要。
从发展的角度来看,电子地图将成为新的地图制图平台,“地图制图平民化”的趋势也将越来越明显。
地图管理功能:除包含空间数据、属性数据和时间数据外,电子地图还包含多种数据源的数据,因此需要使用地图数据库管理这些复杂、大量的数据。
检索查询功能:可以根据用户需求来检索信息,并以多媒体的形式显示查询结果,包括图形到属性的查询,属性到图形的查询,图形、属性综合查询以及拓扑查询。
数据更新功能:能提供强有力的数据输入、编辑能力,以确保即时地更新数据,保证电子地图的现势性,并为再版地图创造优越的制图环境。
电子地图的图种较多,应用也非常广泛.现在我们来了解一下电子地图家族里的导航图,多媒体地图,网络地图的特点及行业应用.1.导航图现代交通发展以后,出现了复杂的公路体系。
这种公路错综复杂、四通八达,而周围景象往往千篇一律,不容易辨识。
地图是开车行路的必备工具,因此电子导航地图应运而生。
一张CD一ROM能装下全国的所有大大小小的道路数据,开车时携带便携式计算机,就能随时查阅地图。
不过这种电子地图并不像用一张光盘替代一本地图集这么简单,它还有更多的功能,如路径选择:出发前想去哪里,先告诉电子地图,它会帮助选择出一条最快捷的路线。
不一定必须知道目的地在地图上何处,只要有个地址电子地图用地理编码技术就能够自动找目标到并精确定位。
还有详细的资料库能辅助决定旅行计划,如它会告知旅途中会路过哪些名胜景点。
电子地图系统开发方案概述:电子地图系统是一种基于计算机和网络技术,用于展示、查询和管理地理信息的系统。
本文将介绍一个完整的电子地图系统开发方案,包括系统需求、技术选型、系统设计和开发进程。
一、系统需求分析1. 功能需求:- 地图展示:能够以图形化形式展示地图,并支持缩放、拖动等操作。
- 地址搜索:提供地址搜索功能,用户可以通过输入地址查询地图上的位置。
- 路线规划:根据用户的起始点和目的地,规划最佳行车路线,并提供导航指引。
- 地图标注:允许用户在地图上添加标记、标签等信息,方便用户增加个性化的地图数据。
- 数据管理:支持对地图数据进行管理,包括添加、编辑、删除等操作。
2. 性能需求:- 快速响应:系统需要能够在用户进行操作时,快速加载和展示地图数据。
- 稳定可靠:要求系统具备良好的稳定性和可靠性,确保系统能够长时间稳定运行。
二、技术选型1. 前端技术:- 前端界面:采用HTML、CSS和JavaScript技术,实现用户界面的设计和交互操作。
- 地图展示:选择合适的地图引擎,如Google Maps、百度地图等,用于地图的展示和操作。
- 地址搜索:使用地理编码和逆地理编码技术,结合第三方地图服务商的接口,实现地址搜索功能。
- 路线规划:选择合适的路线规划算法,结合第三方地图服务商的接口,实现路线规划和导航功能。
- 交互设计:设计用户友好的界面,并采用响应式设计,使得系统能够在不同终端上展示和操作。
2. 后端技术:- 数据库:选择合适的数据库系统,如MySQL、MongoDB等,用于存储地图数据和用户操作记录。
- 服务器:使用Java、Python等编程语言,结合Spring、Django等开源框架,实现系统的后端逻辑和接口。
- 性能优化:通过缓存、负载均衡等技术手段,提高系统的性能和并发能力。
- 安全性:采用HTTPS协议、接口鉴权等安全措施,保护系统的数据和用户隐私。
三、系统设计1. 架构设计:- 前后端分离:将前端和后端进行解耦,实现前后端分离开发和部署。
一、绪论1、路面管理系统的概念及作用用于优化利用路面养护可用资源,包含信息采集、信息分析和方案决策的管理方法,是包括硬件设备和计算机软件系统的技术实体。
(需依据所学的知识自己总结)1路网评价;2路况性能分析;3养护资金需求分析;4养护资金优化分配应用检测设备获取路面破损数据,建立相应的数据库,制定路面破损评价方法.标准和优先养护排序模型的以计算机为工具的路面管理技术称为路面管理系统。
2、路面管理系统的各组成部分及其作用(P2)1数据采集系统;2数据库管理系统;3网级路面管理系统;4项目级路面管理系统;5地理信息及电子地图管理系统网级系统主要从整个路网的角度出发,通过对各路段现状进行对比分析,为保持路网良好的使用性能而提出科学合理的养护决策,让有限的公路养护资金发挥最大的经济效益和社会效益;项目级路面管理系统则是针对特定的具体的路段养护项目,提出详细的可供操作的养护方案。
网级系统是涉及整个路网的、用于指定路网养护政策、确定路网养护需求和养护费用优化分配的宏观分析系统;项目级系统则是根据网级系统的决策,以路段为对象,从技术和经济的角度分析养护方案的系统。
网级路面管理系统的范围,包括一个地区(省、市)的公路网或一大批工程项目。
它的主要任务是为管理部门进行关键性的行政决策提供对策,网级路面管理系统一般由数据库、使用性能评价模型、对策分析模型、使用性能预估模型、分析模型和优化模型等部分组成。
项目级路面管理系统仅针对一个工程项目,它的主要任务是为管理部门对某一工程进行技术决策时提供对策,以选择费用—效益最佳的方案。
它以数据库为核心,通过对与路面相关的各种数据的采集形成数据库,利用这些数据进行路面使用性能评价,得出各种相关的使用性能指数,通过这些指数确定路面所处的损坏状况,由此给出各路段的养护、改建方案,对各方案加以经济分析比较,得出适合该路段的费用—效益最佳方案。
当数据积累到足够程度后,便可以建立路面使用性能预估模型,对路面的各项使用性能指标进行预估。
#include <cstdio>#include <cstdlib>#include <malloc.h>#include <cstring>#include <ctime>#include <string>#include <algorithm>#include <iostream>using namespace std;void start();void display();void displaypaixu();void displayjiansuo();Road *head = NULL;void SearchByClass(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0,Class;printf("请输入您所要查找的道路的番号:\n");scanf("%d",&Class);prev=p=(Road *)malloc(sizeof(Road));//创建一个结点a=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&a));temp_head = head;if(temp_head == NULL){printf("无数据源");system("pause");exit(5);}while(temp_head!=NULL){if(temp_head->stRoadRec.linkid==Class){end=(Road *)malloc(sizeof(Road));printf("#linkid=%d ",temp_head->stRoadRec.LinkID);printf("roadnameflag=%d ",temp_head->stRoadRec.roadnameflag);printf("brunch=%d ",temp_head->stRoadRec.brunch);printf("dispclass=%d ",temp_head->stRoadRec.linkid);printf("roadname=%s#\n",temp_head->stRoadRec.roadname);p->stRoadRec.LinkID = temp_head->stRoadRec.LinkID;p->stRoadRec.roadnameflag = temp_head->stRoadRec.roadnameflag;p->stRoadRec.brunch = temp_head->stRoadRec.brunch;p->stRoadRec.linkid = temp_head->stRoadRec.linkid;p->stRoadRec.roadname = temp_head->stRoadRec.roadname;p->next=end;p = p->next;i++;}temp_head=temp_head->next;}end->next=NULL;p ->next = NULL;if(i>=5){save(prev);printf("查询结果数大于5,已保存至SearchResult.txt\n");}b=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&b));printf("本次查找用时%d 秒.\n",b-a);}void SearchById(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0,LinkId;printf("请输入您所要查找的道路的ID:\n");scanf("%d",&LinkId);prev=p=(Road *)malloc(sizeof(Road));//创建一个结点a=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&a));temp_head = head;if(temp_head == NULL){printf("无数据源");system("pause");exit(3);}while(temp_head!=NULL){if(temp_head->stRoadRec.LinkID==LinkId){end=(Road *)malloc(sizeof(Road));printf("#linkid=%d",temp_head->stRoadRec.LinkID);printf("roadnameflag=%d",temp_head->stRoadRec.roadnameflag);printf("brunch=%d",temp_head->stRoadRec.brunch);printf("dispclass=%d",temp_head->stRoadRec.linkid);printf("roadname=%s#\n",temp_head->stRoadRec.roadname);p->stRoadRec.LinkID=temp_head->stRoadRec.LinkID;p->stRoadRec.roadnameflag=temp_head->stRoadRec.roadnameflag;p->stRoadRec.brunch=temp_head->stRoadRec.brunch;p->stRoadRec.linkid=temp_head->stRoadRec.linkid;p->stRoadRec.roadname = temp_head->stRoadRec.roadname;p->next=end;p = p->next;i++;}temp_head=temp_head->next;}p ->next = NULL;if(i>=5){save(prev);printf("查询结果数大于5,已保存至SearchResult.txt\n");}b=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&b));printf("本次查找用时%d 秒.\n",b-a);}void SearchByName(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0;char Name[30];printf("请输入您所要查找的道路的名称:\n");scanf("%s",Name);prev=p=(Road *)malloc(sizeof(Road));//创建一个结点a=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&a));temp_head = head;if(temp_head == NULL){printf("无数据源");system("pause");exit(6);}while(temp_head!=NULL){if(strcmp(temp_head->stRoadRec.roadname,Name)==0){end=(Road *)malloc(sizeof(Road));printf("#linkid=%d",temp_head->stRoadRec.LinkID);printf("roadnameflag=%d",temp_head->stRoadRec.roadnameflag);printf("brunch=%d",temp_head->stRoadRec.brunch);printf("dispclass=%d",temp_head->stRoadRec.linkid);printf("roadname=%s#\n",temp_head->stRoadRec.roadname);p->stRoadRec.LinkID = temp_head->stRoadRec.LinkID;p->stRoadRec.roadnameflag = temp_head->stRoadRec.roadnameflag;p->stRoadRec.brunch = temp_head->stRoadRec.brunch;p->stRoadRec.linkid = temp_head->stRoadRec.linkid;p->stRoadRec.roadname = temp_head->stRoadRec.roadname;p->next=end;p = p->next;i++;}temp_head=temp_head->next;}p ->next = NULL;if(i>=5){save(prev);printf("查询结果数大于5,已保存至SearchResult.txt\n");}b=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&b));printf("本次查找用时%d 秒.\n",b-a);}void updata(Road*head){FILE*pp;FILE*ppp;FILE*infile;FILE*outfile;time_t a;char filename[20];Road*p1;Road*p2;pp=fopen("newfile.txt","w");if(pp==NULL){printf("文件创建失败\n");exit(1);}//判断文件是否创建成功//p1=head;if(p1==NULL){printf("空指针\n");}//判断头指针是否为空//while(p1!=NULL){fprintf(pp,"%d%d%d%s%d%d",p1->stRoadRec.data_size,p1->stRoadRec.LinkID,p1->stRoa dRec.road_size,p1->stRoadRec.roadname,p1->stRoadRec.brunch,p1->stRoadRec.linkid);p1=p1->next;}fclose(pp);//将动态链表中的内容写入文件newfile中//a=time(NULL);strcpy(filename,"update.dat");infile=fopen("jilu.txt","w");fscanf(infile,"%d%s",&a,&filename);//将时间和update.dat都写入文件中//outfile=fopen("jilu.txt","r");if(outfile==NULL)exit(1);fprintf(outfile,"%s",filename);//将文件中的内容读出来作为文件名//fclose(outfile);//将时间加入到文件名中,使更新后之前的文件内容不会被覆盖// ppp=fopen(filename,"wb");if(ppp==NULL)printf("更新文件创建失败\n");p2=head;while(p2!=NULL){fwrite(p2,sizeof(Road),1,ppp);p2=p2->next;}printf("文件更新中...\n");printf("文件更新成功\n");fclose(ppp);//文件更新完毕,将排序后的内容写入文本文件和二进制文件中// }void SearchByBruch(Road *head){time_t a,b;Road *prev,*p,*end,*temp_head;char Run_time[80];int i=0,Bruch;printf("请输入您所要查找的道路的岔路数:\n");scanf("%d",&Bruch);p=(Road *)malloc(sizeof(Road));//创建一个结点prev=p;a=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&a));temp_head = head;if(temp_head == NULL){printf("无数据源");system("pause");exit(4);}while(temp_head!=NULL){if(temp_head->stRoadRec.brunch==Bruch){end=(Road *)malloc(sizeof(Road));printf("#linkid=%d",temp_head->stRoadRec.LinkID);printf("roadnameflag=%d",temp_head->stRoadRec.roadnameflag);printf("brunch=%d",temp_head->stRoadRec.brunch);printf("dispclass=%d",temp_head->stRoadRec.linkid);printf("roadname=%s#\n",temp_head->stRoadRec.roadname);p->stRoadRec.LinkID=temp_head->stRoadRec.LinkID;p->stRoadRec.roadnameflag=temp_head->stRoadRec.roadnameflag;p->stRoadRec.brunch=temp_head->stRoadRec.brunch;p->stRoadRec.linkid=temp_head->stRoadRec.linkid;p->stRoadRec.roadname = temp_head->stRoadRec.roadname;p->next = end;p = p->next;i++;}temp_head = temp_head->next;}p->next = NULL;if(i>=5){printf("i的结果是%d\n",i);save(prev);printf("查询结果数大于5,已保存至SearchResult.txt\n");}b=time(NULL);strftime(Run_time,79,"%H:%M:%S",localtime(&b));printf("本次查找用时%d 秒.\n",b-a);}Road* readfile(void){FILE *fp;unsigned short temp_data_size[1]; //数据大小2byte buffunsigned int temp_LinkID[1]; //道路编号4byte buffunsigned short temp_road_size[1]; //道路名称的尺寸2byte buffunsigned int temp_info[1]; //道路信息4byte buffchar temp_name[5000]; //GTBL.dat 不存在就输入char *p_name; //道路名称指针Road *head,*pCur,*pEnd;pCur = (Road *)malloc(sizeof(Road));head=pCur;fp = fopen("GTBL.dat","rb+");if(fp == NULL){printf("错误:不能打开GTBL.dat\n");system("pause");looperror:printf("\n请输入你要打开的文件名\n");scanf("%s",temp_name);fp = fopen( temp_name,"rb+");if( fp == NULL){printf("错误:不能打开%s",temp_name);goto looperror;}}else{printf("读取成功\n");}while(1){pEnd = (Road *)malloc(sizeof(Road));fread( temp_data_size,sizeof(unsigned short),1,fp );pCur->stRoadRec.data_size = M_CHG_INT16(temp_data_size[0]);//printf("%d",pCur->stRoadRec.data_size);fread( temp_LinkID,sizeof(unsigned int),1,fp );pCur->stRoadRec.LinkID = M_CHG_INT32(temp_LinkID[0]);fread( temp_road_size,sizeof(short),1,fp );pCur->stRoadRec.road_size = M_CHG_INT16(temp_road_size[0]);fread( temp_info,sizeof(unsigned int),1,fp );temp_info[0] = M_CHG_INT32( temp_info[0] );pCur->stRoadRec.linkid = ( 0xf & temp_info[0] ); //printf("%d",pCur->stRoadRec.linkid);pCur->stRoadRec.brunch = ( (0x70 & temp_info[0])>>4 );pCur->stRoadRec.roadnameflag = ( (0x80 & temp_info[0])>>7 );if(pCur->stRoadRec.roadnameflag == 1){pCur->stRoadRec.roadname=(char*)malloc(pCur->stRoadRec.data_size-12);//printf("%d",p Cur->stRoadRec.data_size-12);p_name = (char*)malloc(pCur->stRoadRec.data_size-12);fread(pCur->stRoadRec.roadname,(pCur->stRoadRec.data_size-12),1,fp);//pCur->stRoadRec.roadname = p_name;}else{pCur->stRoadRec.roadname = NULL;}if(feof(fp)){break;}pCur->next = pEnd;pCur=pCur->next;}pCur->next=NULL;return head;}void QListSort(Road **head, Road *end){Road *right;Road **left_walk, **right_walk;Road *pivot, *old;int count, left_count, right_count;if (*head == end)return;do{pivot = *head;left_walk = head;right_walk = &right;left_count = right_count = 0;//取第一个节点作为比较的基准,小于基准的在左面的子链表中,//大于基准的在右边的子链表中for (old = (*head)->next; old != end; old = old->next){if (old->stRoadRec.LinkID < pivot->stRoadRec.LinkID) //小于基准,加入到左面的子链表,继续比较{++left_count;*left_walk = old; //把该节点加入到左边的链表中,left_walk = &(old->next);}else //大于基准,加入到右边的子链表,继续比较{++right_count;*right_walk = old;right_walk = &(old->next);}}//合并链表*right_walk = end; //结束右链表*left_walk = pivot; //把基准置于正确的位置上pivot->next = right; //把链表合并//对较小的子链表进行快排序,较大的子链表进行迭代排序。