数据结构课程设计交通咨询系统设计
精品文档
可编辑 设计题目:7.3.4交通咨询系统设计P160
一、设计要求
1.问题描述
根据不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。
2.需求分析
二、概要设计
1.主界面设计
(图2.1“交通咨询系统”主菜单)
2.存储结构设计
本系统采用图结构类型存储抽象交通咨询系统的信息。
typedef struct TrafficNode
{ 精品文档
可编辑 char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为10
int StartTime, StopTime; //起止时间
int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号
int Cost; //票价
} TrafficNodeDat;
typedef struct VNode
{
CityType city;
int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数
TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次
TrafficNodeDat Flight[MAX_TRAFFIC_NUM];
// int Cost; //遍历时到达该城市的耗费(时间或者费用)
} VNodeDat;
typedef struct PNode
{
int City;
int TraNo;
} PNodeDat; 精品文档
可编辑 3.系统功能设计
(1)添加城市。添加一个城市的名称
(2)删除城市。输入一个城市名称,删除该城市。
(3)添加交通路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间和票价
(4) 删除交通路线。输入火车或飞机的班次删除该交通路线。
(5)查询最小费用路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间查询最小费用路线。
三、模块设计
1.模块设计
(图2.2 模块调用示意图)
2.系统子程序及功能设计
(1)int ShowMenu()//主菜单
(2)void CopyRight()
(3)int SeekCity(char *name) //寻找城市
(4)int InsertCity(char *Name) //添加城市
(5)int SaveSysInfo() //向程序输入数据
(6)int DelCity(char *Name) //删除城市
(7)int InsertTrain(char *train, char *StartCity, char *EndCity, int
StartTime, int EndTime, int cost)//添加火车路线 主程序模块 工作区模块 无向网操作模块 精品文档
可编辑 (8)int InsertFlight(char *flight, char *StartCity, char *EndCity, int
StartTime, int EndTime, int cost)//添加飞机航线
(9)int DelPath(char *name)//删除路线
(10)void Dijkstra(int matx[Dij_MAXN][Dij_MAXN], int p_start, int
p_end, int TravelType)
(11)int InitSysData()//存储数据
(12)int SearchMinTime(CityType City, CityType EndCity, int CurTime,
int curPathNo, int TravelType)//查询最短时间
(13)int CalcMinTime(int StartCity, int EndCity, int TravelType) //显示最短时间
(14)int CalcMinCost(int StartCity, int EndCity, int TravelType)//最少花费
(15)int main()//主函数
3.函数主要调用关系图
(图2.3函数主要调用关系图) 15main8 9
1 12
7 5 4 13
6 3 6 1 2 2 3 7
1 6 精品文档
可编辑 四、详细设计
1.数据类型定义
(1)全局变量的定义
typedef short int CityType;//CityType 定义短整形的变量
typedef struct TrafficNode
{
char name[MAX_STRING_NUM]; //班次 //MAX_STRING_NUM最为10
int StartTime, StopTime; //起止时间
int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号
int Cost; //票价
} TrafficNodeDat;
typedef struct VNode
{
CityType city;
int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数
TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次
TrafficNodeDat Flight[MAX_TRAFFIC_NUM];
// int Cost; //遍历时到达该城市的耗费(时间或者费用) 精品文档
可编辑 } VNodeDat;
typedef struct PNode
{
int City;
int TraNo;
} PNodeDat;
2.系统主要子程序详细设计
(1)用户工作区模块的设计
int ShowMenu()
{
printf("\n|******************欢迎使用交通咨询系统*******|\n");
printf("\n|------------------1: 添加城市----------------|");
printf("\n|------------------2: 删除城市----------------|");
printf("\n|------------------3: 添加交通路线------------|");
printf("\n|------------------4: 删除交通路线------------|");
printf("\n|------------------5: 查询最小费用路线--------|");
printf("\n|------------------6: 查询最快路线------------|");
printf("\n|------------------7: 清除屏幕----------------|");
printf("\n|------------------0: 退出--------------------|\n");
printf("\n|***********o(∩_∩)o o(∩_∩)o **************|\n");
printf("\n请输入你的选择:");
return 1; 精品文档
可编辑 }
(2)用Dijkstra算法求两段路程的最短距离
void Dijkstra_Output(int matx[Dij_MAXN][Dij_MAXN], int
PreCity[Dij_MAXN], int p_end, int TravelType)
{
int track[Dij_MAXN];
int i = 0, j, k, min, tmp, end, cost = 0;
j = p_end; track[i++] = j;
while (PreCity[j] >= 0)
{
cost += matx[PreCity[j]][j];
track[i++] = j = PreCity[j];
}
printf("\nTrack Way:");
if (!TravelType)
{
for (i--; i>0; i--)
{
printf("\n%s:", CityName[track[i]]);
end = track[i - 1]; min = 32767;
for (k = 0; k
可编辑 if (AdjList[track[i]].Train[k].EndCity ==
end&&min>AdjList[track[i]].Train[k].Cost)
{
min = AdjList[track[i]].Train[k].Cost;
tmp = k;
}
printf("%s", AdjList[track[i]].Train[tmp].name);
printf("%2d:%2d-%2d:%2d",
AdjList[track[i]].Train[tmp].StartTime / 60,
AdjList[track[i]].Train[tmp].StartTime % 60,
AdjList[track[i]].Train[tmp].StopTime / 60,
AdjList[track[i]].Train[tmp].StopTime % 60);
}
}
else
{
for (i--; i>0; i--)
{
printf("\n%s:", CityName[track[i]]);
end = track[i - 1]; min = 32767;
for (k = 0; k
1交通咨询系统
目 录
1 问题定义 …………………………………………………………………………..1
2 系统设计 ……………………………………………………………………1
2.1 总体设计………………………………………………………………………………1
2.2 详细设计………………………………………………………………………………2
2.2.1 数据结构设计 ……… …………………………………………………2
2.2.2 主控流程 …………………………………………………………………………2
2.2.3 输入记录模块 ……………………………………………………………………2
2.2.4 输出记录模块 ……………………………………………….…………………3
2.2.5 函数功能描述 …………………………………………………………………3
3 系统实现 ………………………………………………………………………4
3.1 编码 ………………………………………………………………………4
3.1.1 程序预处理 ……….……………………………………………………………4
3.1.2 主函数main() ……….………………………………………………………4
3.1.3 主菜单界面 ………….……………………………………………………… 5
3.1.4 查询城市记录 ………….………………………………………………………7
3.2 测试与调试 ………………………………………………………………………7
3.2.1 概述 ………….……………………………………………………………7
3.2.2 程序测试 ………….……………………………………………………………7
4 系统维护 ………………………………………………………………………8
高职高专《数据结构》互动式教学探讨
高职高专《数据结构》互动式教学探讨
孙水明
(贵阳中医学院,贵州贵阳550002)
摘要:《数据结构》是高职类计算机相关专业的必
修、主干课程之一,其旨在使学生学会分析研究数据对象
的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算(操作),把现实世界中的问题转化为计算机内部的表示和处理,这是一个良好的程序设计技能训练的过程。在整个教学或学习过程中,解题能力和上机实验的训练是一个重要的环节。笔者从教学
实践出发,结合学生的特点,对本课程的教学方法进行了
一些探讨。关键词:数据结构高职高专教学见解
《数据结构》是数据处理的基础,它是所有计算机课程
中的核心课程。由于该课程涉及到计算机原理、程序设计等各方面的知识,加上它本身的理论性较强,所以被公认为是一门比较难学的课程。
一、引言由于《C++程序设计》是《数据结构》(C++版)的先导课,而学习《数据结构》又离不开算法的实现。加上课程本身具有概念多、理论性强、高度抽象等特点,从而在实际教学过程中出现了课时少与教学内容多的矛盾,学生学习兴趣不高,教学效果不理想等等问题,这个问题在高职高专院校中
普遍存在。1.以学生为主体,温故而知新的教学方法笔者在教学过程中发现,高职高专的学生在学习本课程的过程中有相当一部分是卡在《C++程序设计》的语法结构和对程序的理解上。为了解决这一具体问题,要求学生在课余时间认真复习C十十语言,课堂上结合课程实际适当补充C++语言必要的知识,培养他们建立程序设计的思想体系,
逐步提高学生阅读和理解算法的能力。在教学中以学生为
主体,改变“填鸭式”的做法,有效设计“提问—解决方法—再提问”的方式,让众多的学生参与,用问题去激发
学生思考,引导他们如何解决问题。2.夯实基本概念,多举实例,调动学生学习兴趣由于《数据结构》理论性很强,直接从定义出发讲解相关概念学生不易接受,在教学过程中,结合日常生活中的事
例引人,可大大激发学生的兴趣,从而调动学生的求知欲。例如,在讲解栈和队列这一章时,分别举出日常生活中的事例。如栈的例子,在刷洗盘子时,依次把每个洗净的盘
数据结构课程设计题目
1、 运动会分数统计
问题描述:
参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。哪些项目取前五名或前三名由学生自己设定。写一个统计程序产生各种成绩单和得分报表。
基本要求:
(1)各项目结束时,输出前三名或前五名的项目编号、运动员姓名、校名和名次(成绩);
(2)产生各学校的成绩单,内容包括每个学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分,并统计各学校总分;
(3)可以按学校编号、男女团体总分排序输出;
(4)可以按学校编号查询学校某个项目的情况;
(5)可以按项目编号查询取得前三或前五名的学校。
2、 员工管理系统
问题描述:
对单位的员工进行管理,包括插入、删除、查找、排序等功能。
基本要求:
员工对象包括姓名、性别、年龄、职位、工龄等信息。
(1)新增一名员工:将新增员工对象按姓名以字典方式存入员工管理文件中,基本信息中的编号是按照添加顺序自动增加的。
(2)删除一名员工:从员工管理文件中删除一名员工对象,分为根据编号删除、根据姓名删除。
(3)查询:从员工管理文件中查询符合某些条件(编号、姓名)的员工。
(4)修改:根据编号检索出对象,既可以对整个对象修改,也可对某个属性修改。
(5)排序:按照年龄、工龄对所有的员工排序(升/降序,由用户选择)。
3、 银行业务模拟
问题描述:
假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),若某个窗口的业务员正空闲,则上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。
《数据结构》课程设计大纲
《数据结构》课程设计
(适用于:2019级计算机科学与技术、2019级计算机科学与技术(软件工程方向)班
2019级电子商务班、2019级信息安全班)
一、课程设计目的
《数据结构》课程设计作为独立的教学环节,是计算机相关专业集中实践性环节系列之一,是学习完《数据结构》课程后进行的一次全面的综合练习。其目的在于加深对数据结构基础理论和基本知识的理解,提高解决实际问题的实践能力。调动学生的积极性和能动性,培养学生的自学能力。
二、课程设计要求
1、学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。
2、课程设计按照教学要求需要两周时间完成,每天安排时间上机调试程序,在安排上机时间学生不得无故缺席。
3、本次课程设计分两个阶段进行,第一周(个人独立)完成基础部分(三选二)的课程设计,第二周进行能力提高的课程设计,以自由组合(3或2人)的方式选择一个题目完成。
三、基础部分课程设计内容(三选二)
1、哈夫曼编码
设计要求:本设计要求是对输入的一串电文字符(5000以上个字符)实现哈夫曼编码,再对哈夫曼编码生成的代码串进行译码,输出电文字符串。要求设计完成如下功能:
1)建立哈夫曼树并生成哈夫曼编码;
2)输入电文生成哈夫曼编码文件;
*3)将编码文件译码并输出。
2、排序综合
设计要求:利用随机函数产生N个随机整数(50000以上)在[0,750]之间,对这些数进行多种方法进行排序。要求设计完成如下功能:
1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序)。并把排序后的结果保存在不同的文件中;
2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
3、宿舍管理查询软件
设计要求:为宿舍管理人员编写一个宿舍管理查询软件,采用交互工作方式,建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
数据结构
数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。数据的逻辑结构是对数据之间关系的描述,有时就把逻辑结构简称为数据结构。逻辑结构形式地定义为(K,R)(或(D,S)),其中,K是数据元素的有限集,R是K上的关系的有限集。
数据元素相互之间的关系称为结构。有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。树形结构和图形结构全称为非线性结构。集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现。索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。
数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性结构的顺序存储结构是一种随机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。
交通咨询管理系统
一、主要功能
1.1程序的功能 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心 节省交通费用,而且对里程和所需时间等问题也很感兴趣。对于这样一个人们 关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通 咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短
路径(里程)的问题,或者任意两个城市之间的最短路径问题。这样可以极大 地方便旅客。
1.2输入输出的要求
在本程序里定义了一个EdgeType类,包括一个整型类型iDistanee的成员;
一个city结构体,包括了整型的Number和字符型的*Name成员;还定义了一 个AdjMatrix类,包含了一些公有函数,如:int GetVexNum();〃取得交通图的 城市个数,void ShowRouteLength();/向用户显示路程长度,void Dijkstra(int v,int
dist[],int path[]) ;//在图结构中求一个点到其他点的最短长度;也包含了四个
私有成员数据:int iVexNum;//顶点数,即城市个数,int iEdgNum;//边数,即城
市间的路线,City city[MaxValue];〃图的顶点,即城市,EdgeType
Route[MaxValue][MaxValue];〃 各边的权值,即路程。
从以上定义可以看出本程序的输入输出主要采用整型和字符串型的数据类
型。
二、功能模块的划分 2.1存储交通信息网模块 在该系统中要求管理人员在旅客使用前先建立一个城市交通信息网,并保 存以方便旅客的使用。
2.2查询一个城市到其他城市的路径模块图
图(2)任意两个城市之间路径查询模块图
2.4整个系统程序模块图 图(3)整个系统查询模块图
2
三、主要功能的实现
3.1.1城市交通咨询系统的流程图
图(4)城市交通咨询系统的流程图
在本系统中设置了三个模块分别为:
智能交通工程的培养方案(3篇)
第1篇
一、培养目标
智能交通工程培养方案旨在培养具备扎实的交通工程理论基础,熟悉智能交通系统(ITS)的基本原理和关键技术,能够运用现代信息技术解决交通问题的高级工程技术人才。毕业生应具备以下能力:
1. 掌握交通工程的基本理论、方法和技术;
2. 熟悉智能交通系统的基本原理、技术架构和系统设计;
3. 具备运用现代信息技术(如物联网、大数据、人工智能等)进行交通问题分析和解决的能力;
4. 具备交通规划、设计、建设和运营管理等方面的实际操作能力;
5. 具有良好的创新意识和团队合作精神,能够适应交通行业的发展需求。
二、培养规格
1. 学科基础:毕业生应掌握数学、力学、计算机科学等基础学科知识,具备扎实的交通工程专业知识。
2. 专业能力:毕业生应具备以下专业能力:
- 交通规划与设计能力;
- 交通系统分析与评估能力;
- 智能交通系统设计与应用能力;
- 交通信息化技术运用能力;
- 交通工程项目管理能力。
3. 综合素质:毕业生应具备以下综合素质:
- 良好的职业道德和敬业精神;
- 较强的创新意识和实践能力;
- 良好的沟通和团队协作能力;
- 良好的英语阅读和写作能力; - 良好的计算机应用能力。
三、课程体系
1. 公共课程:包括思想政治理论、英语、计算机基础、体育等。
2. 专业基础课程:包括高等数学、线性代数、概率论与数理统计、离散数学、运筹学、数据结构、计算机网络、数据库原理、交通运输学、交通工程学等。
3. 专业核心课程:包括智能交通系统、交通规划与设计、交通工程经济学、交通安全与事故处理、交通仿真、交通信息工程及控制、交通地理信息系统、交通项目管理等。
4. 选修课程:根据学生兴趣和职业发展方向,开设交通工程相关的选修课程,如智能车技术、自动驾驶技术、城市轨道交通、高速公路管理等。
5. 实践教学:包括实验、实习、课程设计、毕业设计等环节,确保学生能够将理论知识应用于实际工作中。
数据结构课程设计题目 2
数据结构课程设计题⽬
《数据结构》课程设计题⽬1. 排序算法的性能分析
问题描述
设计⼀个测试程序,⽐较⼏种内部排序算法的关键字⽐较次数和移动次数以取得直观感受。
基本要求
(1)对冒泡排序、直接排序、选择排序、箱⼦排序、堆排序、快速排序及归并排序算法进⾏⽐较。
(2)待排序表的表长不⼩于100,表中数据随机产⽣,⾄少⽤5组不同数据作⽐较,⽐较指标:关键字参加⽐较次数和关键字的移动次数(关键字交换记为3次移动)。
(3)输出⽐较结果。
选做内容
(1)对不同表长进⾏⽐较。
(2)验证各算法的稳定性。
(3)输出界⾯的优化。2. 排序算法思想的可视化演⽰—1
基本要求
排序数据随机产⽣,针对随机案例,对冒泡排序、箱⼦排序、堆排序、归并算法,提供排序执⾏过程的动态图形演⽰。3. 排序算法思想的可视化演⽰—2
基本要求
排序数据随机产⽣,针对随机案例,,对插⼊排序、选择排序、基数排序、快速排序算法,提供排序执⾏过程的动态图形演⽰。4. 线性表的实现与分析
基本要求
①设计并实现线性表。
②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储⽅
式
③针对随机产⽣的线性表实例,实现线性表的插⼊、删除、搜索操作动态演⽰(图
形演⽰)。5. 等价类实现及其应⽤
问题描述:某⼯⼚有⼀台机器能够执⾏n个任务,任务i的释放时间为r i(是⼀个整数),最后期限为d i(也是整数)。在该机上完成每个任务都需要⼀个单元的时间。⼀种可⾏的调
度⽅案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。⼀个时间段不允许分配给多个任务。
基本要求:
使⽤等价类实现以上机器调度问题。
等价类分别采取两种数据结构实现。6. ⼀元稀疏多项式计算器
问题描述
设计⼀个⼀元稀疏多项式简单计算器。
基本要求
⼀元稀疏多项式简单计算器的基本功能是:
(1)输⼊并建⽴多项式;
(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;
交通咨询系统中时间最省算法的实现
\.人工智能及识j;{l技术。 。.。 本栏目责任编辑:李桂瑾
交通咨询系统中时问最省算法的实现
石海燕 (绍兴文理学院计算机系,浙江绍兴312000)
摘要:本文根据交通咨询系统中图的特点,基于Dijkstra算法,自动求取了从起始城市到目的城市的时间最短的行程安排。在算法的
具体实现过程中给出了一种新的数据结构.这个数据结构使得算法结构更加简洁。
关键词:最短路径;Dijkstra算法:交通咨询系统
中图分类号:TP301 文献标识码:A 文章编号:1009—3044(2007)05—11366—02 The Realization of M mum-time Travel Schedule Algorithm for Traffic Query System 。
SHI Hal—yah
‘ (Department of Computer Science,Shaoxing Umve ̄ity,Shaoxing 312000,China) Abstract:Based on Dijkstra algorithm and applying graphic theorem on traffic query system.this paper presents a method for automatically
calculate a minimum—time travel schedule from a start city tO a destinate city、In the realizing process,We give a new data structure to Simplify
the algorithm.
Key words:short—circuit path;Dijkstra algorithm;traffic qucry system
1引言
惜时如金的现代人。希望能够事先安排好自己的旅程,以使
数据结构---C语言描述-(耿国华)-课后习题答案
第一章 习题答案
2、××√
3、(1)包含改变量定义的最小范围
(2)数据抽象、信息隐蔽
(3)数据对象、对象间的关系、一组处理数据的操作
(4)指针类型
(5)集合结构、线性结构、树形结构、图状结构
(6)顺序存储、非顺序存储
(7)一对一、一对多、多对多
(8)一系列的操作
(9)有限性、输入、可行性
4、(1)A(2)C(3)C
5、语句频度为1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
第二章 习题答案
1、(1)一半,插入、删除的位置
(2)顺序和链式,显示,隐式
(3)一定,不一定
(4)头指针,头结点的指针域,其前驱的指针域
2、(1)A(2)A:E、A
B:H、L、I、E、A
C:F、M
D:L、J、A、G或J、A、G
(3)D(4)D(5)C(6)A、C
3、头指针:指向整个链表首地址的指针,标示着整个单链表的开始。
头结点:为了操作方便,可以在单链表的第一个结点之前附设一个结点,该结点的数据域可以存储一些关于线性表长度的附加信息,也可以什么都不存。
首元素结点:线性表中的第一个结点成为首元素结点。
4、算法如下:
int Linser(SeqList *L,int X)
{ int i=0,k;
if(L->last>=MAXSIZE-1)
{ printf(“表已满无法插入”);
return(0);
}
while(i<=L->last&&L->elem[i]
i++;
for(k=L->last;k>=I;k--)
L->elem[k+1]=L->elem[k];
