数据结构实验报告三线性表的链式存储

2024-09-02

数据结构实验报告三线性表的链式存储(通用5篇)

数据结构实验报告三线性表的链式存储 篇1

实验报告三 线性表的链式存储

班级: 2010XXX 姓名: HoogLe 学号: 2010XXXX 专业: XXXX

2858505197@qq.com

一、实验目的:

(1)掌握单链表的基本操作的实现方法。(2)掌握循环单链表的基本操作实现。(3)掌握两有序链表的归并操作算法。

二、实验内容:(请采用模板类及模板函数实现)

1、线性表链式存储结构及基本操作算法实现

[实现提示](同时可参见教材p64-p73页的ADT描述及算法实现及ppt)函数、类名称等可自定义,部分变量请加上学号后3位。也可自行对类中所定义的操作进行扩展。所加载的库函数或常量定义: #include using namespace std;(1)单链表存储结构类的定义: template class LinkList{ public: LinkList();//初始化带头结点空单链表构造函数实现

LinkList(T a[],int n);//利用数组初始化带头结点的单链表构造函数实现

~LinkList();int length();//求单链表表长算法

T get(int i);//获得单链表中第i个结点的值算法

int locate(T temp);void insert(int i,T temp);//在带头结点单链表的第i个位置前插入元素e算法

T Delete(int i);//在带头结点单链表中删除第i个元素算法

void print();//遍历单链表元素算法

bool isEmpty();//判单链表表空算法

void deleleAll();//删除链表中所有结点算法(这里不是析构函数,但功能相同)private: Node *head;};(2)初始化带头结点空单链表构造函数实现 输入:无

前置条件:无

动作:初始化一个带头结点的空链表 输出:无

后置条件:头指针指向头结点。

//初始化带头结点空单链表构造函数实现 template LinkList::LinkList(){ head = new Node;head->next = NULL;}

(3)利用数组初始化带头结点的单链表构造函数实现 输入:已存储数据的数组及数组中元素的个数 前置条件:无

动作:利用头插或尾插法创建带头结点的单链表 输出:无

后置条件:头指针指向头结点,且数组中的元素为链表中各结点的数据成员。//利用数组初始化带头结点的单链表构造函数实现 template LinkList::LinkList(T a[],int n){ head=new Node;head->next=NULL;for(int i=0;i *s=new Node;s->data=a[i];s->next=head->next;head->next=s;} }(4)在带头结点单链表的第i个位置前插入元素e算法 输入:插入位置i,待插入元素e 前置条件:i的值要合法

动作:在带头结点的单链表中第i个位置之前插入元素e 输出:无

后置条件:单链表中增加了一个结点

//在带头结点单链表的第i个位置前插入元素e算法 template void LinkList::insert(int i,T temp){ Node *p = head;int count = 0;while(p&&count

p=p->next;

count++;} if(p==NULL)cout<<“i不合法,越界!”;else{

Node *s = new Node;

s->data = temp;

s->next = p->next;

p->next = s;} }(5)在带头结点单链表中删除第i个元素算法 输入:删除第i个结点,待存放删除结点值变量e 前置条件:单链表不空,i的值要合法

动作:在带头结点的单链表中删除第i个结点,并返回该结点的值(由e传出)。输出:无

后置条件:单链表中减少了一个结点

//在带头结点单链表中删除第i个元素算法 template T LinkList::Delete(int i){ Node *p = head;int count = 0;while(p&&count

p=p->next;

count++;} if(p==NULL)cout<<“i不合法,越界!”;else{

Node *s = p->next;

T x= s->data;

p->next = s->next;

return x;} }(6)遍历单链表元素算法 输入:无

前置条件:单链表不空

动作:遍历输出单链表中的各元素。输出:无

后置条件:无

//遍历单链表元素算法 template void LinkList::print(){ Node *p = head->next;while(p){

cout<

data<<“ ”;

p=p->next;} cout<

(7)求单链表表长算法。输入:无

前置条件:无

动作:求单链表中元素个数。输出:返回元素个数 后置条件:无

//求单链表表长算法 template int LinkList::length(){ Node *p = head;int count = 0;while(p){

p=p->next;

count++;} return--count;}

(8)判单链表表空算法 输入:无

前置条件:无

动作:判表是否为空。

输出:为空时返回1,不为空时返回0 后置条件:无 //判断非空

template bool LinkList::isEmpty(){ Node *p = head->next;if(p)return true;else return false;}

(9)获得单链表中第i个结点的值算法 输入:无

前置条件:i不空,i合法 动作:找到第i个结点。

输出:返回第i个结点的元素值。后置条件:无

//获得单链表中第i个结点的值算法 template T LinkList::get(int i){ Node *p = head;int count = 0;while(p&&count

p=p->next;

count++;} if(p==NULL)cout<<“i不合法,越界!”;else{

return p->data;} }

(10)删除链表中所有结点算法(这里不是析构函数,但功能相同)输入:无

前置条件:单链表存在

动作:清除单链表中所有的结点。输出:无

后置条件:头指针指向空 //删除所有元素 template void LinkList::deleleAll(){ Node *p = head;while(p){

Node *t=p;

p=p->next;

t->next=NULL;} }

(11)上机实现以上基本操作,写出main()程序: 参考p72 void main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};//测试带参数的构造函数(前端插入!)

LinkList list1(a,10);//测试插入

if(list1.isEmpty()){ cout<<“链表不为空!”<

cout<<“链表为空!”<

2、参考单链表操作定义与实现,自行完成单循环链表的类的定义与相操作操作算法。template class LinkList{ public: LinkList(T a[],int n);//利用数组初始化带头结点的单循环链表构造函数实现

void insert(int i,T temp);//在带头结点单循环链表的第i个位置前插入元素e算法

T Delete(int i);//在带头结点单循环链表中删除第i个元素算法

void print();//遍历单循环链表元素算法 private: Node *head;int length;};(1)利用数组初始化带头结点的单循环链表构造函数实现 输入:已存储数据的数组及数组中元素的个数 前置条件:无

动作:利用头插或尾插法创建带头结点的单循环链表 输出:无

后置条件:头指针指向头结点,且数组中的元素为链表中各结点的数据成员,尾指针指向头结点。

//利用数组初始化带头结点的单循环链表构造函数实现 template LinkList::LinkList(T a[],int n){ head=new Node;head->next= head;length = 0;for(int i=0;i *s=new Node;s->data=a[i];

s->next = head->next;head->next=s;

length++;} }

(2)在带头结点单循环链表的第i个位置前插入元素e算法 输入:插入位置i,待插入元素e 前置条件:i的值要合法

动作:在带头结点的单循环链表中第i个位置之前插入元素e 输出:无

后置条件:单循环链表中增加了一个结点

//在带头结点单循环链表的第i个位置前插入元素e算法 template void LinkList::insert(int i,T temp){ cout<length< *p = head;int count = 0;if(i>length)cout<<“i不合法,越界!”;else{

while(count

p=p->next;

count++;

}

Node *s = new Node;

s->data = temp;

s->next = p->next;

p->next = s;} }(3)在带头结点单循环链表中删除第i个元素算法 输入:删除第i个结点,待存放删除结点值变量e 前置条件:单循环链表不空,i的值要合法

动作:在带头结点的单循环链表中删除第i个结点,并返回该结点的值(由e传出)。输出:无

后置条件:单循环链表中减少了一个结点

//在带头结点单循环链表中删除第i个元素算法 template T LinkList::Delete(int i){ Node *p = head;int count = 0;

if(i>length)cout<<“i不合法,越界!”<

while(count

p=p->next;

count++;

}

Node *s = p->next;

T x= s->data;

p->next = s->next;

return x;} }

(4)遍历单循环链表元素算法 输入:无

前置条件:单循环链表不空

动作:遍历输出单循环链表中的各元素。输出:无

后置条件:无

//遍历单循环链表元素算法 template void LinkList::print(){ Node *p = head->next;while(p!=head){

cout<

data<<“ ”;

p=p->next;} cout<

(5)上机实现以上基本操作,写出main()程序: void main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};//测试带参数的构造函数(前端插入!)

LinkList list1(a,10);list1.print();cout<<“测试插入”<

3、采用链式存储方式,并利用单链表类及类中所定义的算法加以实现线性表La,Lb为非递减的有序线性表,将其归并为新线性表Lc,该线性表仍有序(未考虑相同时删除一重复值)的算法。模板函数:

template void LinkList::addtwo(LinkList La,LinkList Lb){ Node *p1=La.head->next;Node *p2=Lb.head->next;int num=0;while(p1&&p2){

if(p1->data>p2->data)

{

this->insert(++num,p1->data);

p1=p1->next;

}

else{ this->insert(++num,p2->data);

p2=p2->next;

} } if(!p1){

p1=p2;} while(p1){

this->insert(++num,p1->data);

p1=p1->next;}

} void main(){ int a[5]={1,2,5,6,9};int b[5]={0,3,4,7,8};LinkList list1(a,5);LinkList list2(b,5);list1.print();list2.print();LinkList list3;list3.addtwo(list1,list2);list3.print();system(“pause”);} 粘贴测试数据及运行结果:

选做题:

1、按一元多项式ADT的定义,实现相关操作算法: ADT PNode is Data 系数(coef)指数(exp)指针域(next):指向下一个结点 Operation 暂无

end ADT PNode ADT Polynomial is Data PNode类型的头指针。Operation

Polynomail 初始化值:无

动作:申请头结点,由头指针指向该头结点,并输入m项的系数和指数,建立一元多项式。

DestroyPolyn 输入:无

前置条件: 多项式已存在 动作:消毁多项式。输出:无

后置条件:头指针指向空

PolyDisplay 输入:无

前置条件: 多项式已存在,不为空 动作:输出多项式各项系数与指数 输出:无

后置条件:无 AddPoly 输入:另一个待加的多项式

前置条件:一元多项式pa和pb已存在。动作及后置条件:完成多项式相加运算,(采用pa=pa+pb形式,并销毁一元多项式pb)输出:无

end ADT Polynomial

2、实现一元多项式的减法,操作描述如下: SubPoly 输入:待减的多项式pb 前置条件:一元多项式pa和pb已存在。

动作及后置条件:完成多项式减法运算,即:pa=pa-pb,并销毁一元多项式pb。输出:无

3、参考P74-P79页双向链表的存储结构定义及算法,编程实现双向链表的插入算法和删除算法。

三、心得体会:(含上机中所遇问题的解决办法,所使用到的编程技巧、创新点及编程的心得)

数据结构实验报告三线性表的链式存储 篇2

(1)顺序存储:主要使用语言为C语言,使用的语素是数组,采用顺序存储的优点:可以随机访问数组中的元素,即通过下标去访问数组的元素;其缺点主要有二:其一,由于C语言中,数组一旦被声明,其长度即该结构占用的存储空间是固定的,申请的空间过大,造成空间的浪费同时也为维护该结构造成困难,申请过小,在程序运行过程中,有可能会造成结构空间不足,导致程序故障;其二,在插入,删除数据时,通常会导致大量数据的移动,在等概率的前提下,平均需要移动整个结构中一半的元素,如果元素个体比较复杂问题将更为明显。

(2)链式结构:主要使用含有指针成员的结构实现,优点:插入删除数据时不需要移动数据;缺点:无法随机访问结构中的元素,导致在查找算法实现时,只能只有顺序查找。

(3)比较的结果:在经常需要插入删除操作时,使用链式存储,在数据元素比较固定,有需要随机访问元素时,使用顺序结构。

2. 重新审视顺序存储的缺点

(1)插入删除问题。试想一下,如果在互联网上注册一个用户,相关的信息会写入到服务器中,相当于在结构中插入一个元素,这时恐怕你并不关心你的信息存放在线性结构的哪个位置,那就放到结构的末尾吧,这样就可以避免了插入数据时移动数据的问题了,可以参考以下算法,该算法不存在数据移动问题。

当然上述算法存在一个无法在指定位置插入元素,可以借助函数重载技术实现,使得需要指定位置时调用下面的算法,不需要指定位置时调用上面的算法。

关于删除数据,可以将需要删除的数据加上删除标记,闲时批量删除,这样可以把在顺序存储时,删除元素造成的移动数据问题开销降到较低的程度了。

(2)结构空间上限问题。在C++和Java等程序设计语言中提供了动态数组这种结构,利用这种结构可以实现在不改变数组名的前提下,为数组扩容,当然也可以减少容量,也就打破了在C语言作为算法描述语言时,数组元素上限固定的问题了,可以参考以下算法。

3. 最近使用策略在线性结构中的应用

在计算机科学中,有一个策略叫做最近使用策略。这个策略的思路比较简单,一个明天最有可能穿的衣服还是今天这件,未来最有可能访问的数据是最近使用过的数据。这个策略也可以应用在线性结构中,例如,一个用户在网络上刚刚注册了一个用户,他是最有可能进行登录操作的,或者说刚刚插入到线性结构中的数据是最有可能需要查找的,由于在顺序存储中,默认将新数据插入到数组的末尾,因此在进行顺序查找时,从表尾向表头做循环,通常要比从表头向表尾做循环效率要高,在单向链式结构中,由于只能按照从头到尾的顺序查找,因此,插入时头插法(将新节点放到链表头)通常比尾差法更优越。

4. 结论

随着计算机程序设计技术的发展,传统的观念有可能发生改变,人们对传统数据结构的算法的认识会逐步加深,顺序存储的优点依然存在,而其主要缺点已经随着新兴的程序设计技术的出现得到消除或较大的改善,可以在更多领域使用顺序结构存储线性结构。另外,在数据结构的教学和学习过程中,也需要注意与其他学科的融合,这对于加深算法的理解和算法的设计,都是大有益处的。

摘要:在数据结构中关于线性结构的顺序存储和链式存储的话题由来已久,普遍认为它们之间各有优缺点,随着计算机技术的发展,程序设计技术的发展,经过教学和学习中的不断思考,本文试图对数据结构中线性结构的顺序存储和链式存储比较这一话题进行联系实际的论述,对其重新认识,开拓新的思路,使之可以在更广泛的领域的得到应用。

关键词:数据结构,线性结构,顺序存储,链式存储

参考文献

[1]《计算机程序设计艺术》.Donald E.Knuth.人民邮电出版社.2010.10

[2]《数据结构与面向对象程序设计》.Michael Main.清华大学出版社.2012.5

[3]《C++数据结构与算法》.Adam Drozdek.清华大学出版社.2014.10

实验2,数据库表的创建与维护 篇3

实验名称 数据库表/视图的创建与维护实验

班 级

2011211309

组 号

组员姓名 浦倩 杨洋

实验目的

1. 掌握将E-R图转换为数据库逻辑模式(关系表)的方法。

2. 通过进行数据库表的建立操作,熟悉并掌握在Microsoft SQL Server数据库中建立表的方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。

3. 通过对Microsoft SQL Server数据库中建立、维护视图的实验,熟悉Microsoft SQL Server数据库中建立和维护视图的方法,理解和掌握视图的概念。

4. 掌握从Excel表向Microsoft SQL Server关系数据库导入数据的方法,利用实际数据建立GSM网络配置数据库。实验环境

采用Microsoft SQL Server数据库管理系统作为实验平台。实验内容与步骤

1.阅读《GSM移动通信网络配置数据库》课程实验背景资料-11-v4.doc,将其中数据需求转化为E-R图。具体的E-R物理模型图如下:(主键和外键关联已在图中显示)

2.写好SQL脚本文件(包括多个create table、create view等命令),一次性生成表和视图,在Microsoft SQL Server中打开SQL脚本文件并执行。写好的SQL脚本见附录。

3.数据导入

选择要导入的数据源,原始数据要进行去空行,删除中文行等操作。

选择要导入的数据库名。

选择复制整个表

将数据源和数据库中的表对应起来。

在映射数据属性的时候,相同的名字系统会自动对应。如果要导入的数据源和关系中属性名字不相同的情况下,可以编辑映射将他们联系起来。

成功导入数据。(因为导入数据可能出现一些小问题,所以本次实验的所有实体数据是分开导入的。)

4.创建视图(脚本见附录)

A.在表“小区基本信息”上创建“LAC号为14121的小区基本位置信息”视图CellInfo,属性包括(CellID、所属地区、LAC号、经度、纬度)。

B.在表“20个小区一周分钟级话务数据”上创建“全速率话务量平均值大于23的小区话务量数据信息”视图CellCallInfo,属性包括(CellID、平均半速率话务量率、平均拥塞率)。

C.创建“MscID = 5214的MSC管辖的BTS的基本信息,及其BTS对应的天线基本信息。

附录:(SQL脚本)

create view CellInfo as select CellID,AreaName,LAC,Longitude,Latitude from CELL where LAC=14121 go create view CellCallInfo as(select CELLID,avg(rate)as avg_r,avg(callcongs)as avg_c from HuaWu group by HuaWu.CELLID having avg(traff)>23)Go create view ParMscInfo as select BTS.*,Antenna.* from MSC,BSC,BTS,CELL,Antenna where MSC.MscId=5214 and MSC.MscId=BSC.MscId and BSC.BscId=BTS.BscId and BTS.BtsName=CELL.BtsName and CELL.CellId=Antenna.CellId go

use [victory] Go create table MSC(MscID int not null, MscName char(256)null, MscCompany char(256)null, MscLongitude float null, MscLatitude float null, MscAltitude float null, primary key(MscID))go

/*================*/ /* Table: BSC */ /*================*/ create table BSC(BscId int not null, BscName char(256)null, BscCompany char(256)null, Latitude float null, Longitude float null, MscID int null, primary key(BscId), foreign key(MscID)references MSC)go

/*================*/ /* Table: BTS */ /*================*/ create table BTS(Btsname char(256)not null, BscId int null, Latitude float null, Longitude float null, Altitude float null, BtsCompany char(256)null, BtsPower int null, primary key(Btsname), foreign key(BscId)references BSC)go

/*================*/ /* Table: MS */ /*================*/ create table MS(IMEI char(256)not null, MSISDN char(256)null, UserName char(256)null, MSCompany char(256)null, gsmMspSense float null, gsmMsHeight float null, gsmMspFout float null, MZONE char(256)null, primary key(IMEI))go

/*================*/ /* Table: “CELL” */ /*================*/ create table “CELL”(CellID int not null, LAC int not null, BtsName char(256)null, AreaName char(256)null, Longitude float null, Latitude float null, Direction float null, Bcch int null, primary key(CellID), foreign key(BtsName)references BTS)go create table Antenna(CellID int not null, AntennaHeight float null, HalfPAngle float null, MaxAttenuation float null, Gain float null, AntTilt float null, Pt float null, MsPwt float null, primary key(CellID), foreign key(CellID)references CELL)go

/*================*/ /* Table: PinDian */ /*================*/ create table PinDian(CellID int not null, Freq char(256)not null, primary key(CellID,Freq), foreign key(CellID)references CELL)go

/*================*/ /* Table: LinQu */ /*================*/ create table LinQu(CellID int not null, AdjCellId int null, CellLac float null, AdjCellLac float null, foreign key(CellID)references CELL)go

/*================*/ /* Table: LuCe */ /*================*/ create table LuCe(KeyNum int not null, CellID int null, Latitude float null, Longitude float null, RxLev float null, primary key(KeyNum), foreign key(CellID)references CELL)go

/*================*/ /* Table: HuaWu */ /*================*/ create table HuaWu(CellID int not null, DATA datetime not null, TIME datetime not null, nTCH float null, traff float null, rate float null, thtraff float null, callnum float null, congsnum float null, callcongs float null, primary key(DATA,TIME,CellID), foreign key(CellID)references CELL)go

实验要求 本实验内容比较繁多,要求同学一定要进行完全的实验,并做出详尽的记录。

实验总结

数据结构实验报告三线性表的链式存储 篇4

课程名称金融计量学 实验项目名称多元线性回归模型

班级与班级代码 实验室名称(或课室)

专业

任课教师 xxx

学号 :xxx

姓名 :xxx 实验日期:2012 年 5 月 3 日

广东商学院教务处制 姓名 xxx 实验报告成绩 评语 :

指导教师(签名)

年月日

说明:指导教师评分后,实验报告交院(系)办公室保存

多 元线性回归模型

一、实验目的 通过上机实验,使学生能够使用 Eviews 软件估计可化为线性回归模型的非线性模型,并对线性回归模型的参数线性约束条件进行检验。

二、实验内容 (一)根据中国某年按行业分的全部制造业国有企业及规模以上制造业非国有企业的工业总产值 Y,资产合计 K 及职工人数 L 进行回归分析。

(二)掌握可化为线性多元非线性回归模型的估计和多元线性回归模型的线性约束条件的检验方法 (三)根据实验结果判断中国该年制造业总体的规模报酬状态如何? 三、实验步骤(一)收集数据 下表列示出来中国某年按行业分的全部制造业国有企业及规模以上制造业非国有企业的工业总产值 Y,资产合计 K 及职工人数 L。

序号 工业总产值 Y(亿元)

资产合计 K(亿元)

职工人数 L(万人)

序号 工业总产值 Y(亿元)

资产合计 K(亿元)

职工人数 L(万人)3722.7 3078.22 113 17 812.7 1118.81 43 2 1442.52 1684.43 67 18 1899.7 2052.16 61 3 1752.37 2742.77 84 19 3692.85 6113.11 240 4 1451.29 1973.82 27 20 4732.9 9228.25 222 5 5149.3 5917.01 327 21 2180.23 2866.65 80 6 2291.16 1758.77 120 22 2539.76 2545.63 96 7 1345.17 939.1 58 23 3046.95 4787.9 222 8 656.77 694.94 31 24 2192.63 3255.29 163 9 370.18 363.48 16 25 5364.83 8129.68 244 10 1590.36 2511.99 66 26 4834.68 5260.2 145 11 616.71 973.73 58 27 7549.58 7518.79 138 12 617.94 516.01 28 28 867.91 984.52 46 13 4429.19 3785.91 61 29 4611.39 18626.94 218 14 5749.02 8688.03 254 30 170.3 610.91 19 15 1781.37 2798.9 83 31 325.53 1523.19 45 16 1243.07 1808.44 33 表 1(二)创建工作文件(Workfile)。

1、启动Eviews5,在主菜单上依次点击FileNewWorkfile(如图),按确定。

2、在弹出的对话框中选择数据的时间频率(本实验为序列数据),输入数据数为31(如图1),然后点击OK(如图2)。

(图 1)(图 2)、(三)输入数据 1、在 Eviews 软件的命令窗口中键入数据输入/编辑命令:DATAYKL,按 Enter,则显示一个数组窗口(如图)。

2、分别在Y、K、L列输入相应的数据并以group01命名保存(如图):

(四)、回归分析 1、在经济理论指导下,设定如下的理论模型:

2、运用OLS估计模型 经对数转换,式  e L AK Y 可变换对数形式如下:

3、对表1的Y、K、L的数据进行对数转换,得新的数据如表2所示:

序号

序号

18.222204 8.032107 4.727388 27.274147 7.429183 4.204693 37.468724 7.916724 4.430817 47.280208 7.587726 3.295837 58.546616 8.685587 5.78996 67.736814 7.47237 4.787492 77.204276 6.844922 4.060443 86.487334 6.543826 3.433987 95.913989 5.895724 2.772589 107.371716 7.828831 4.189655 116.424399 6.881134 4.060443 126.426391 6.246126 3.332205 138.395972 8.239042 4.110874 148.656785 9.069701 5.537334 15

7.485138 7.936982 4.418841 16

表2 4、对表2经对数转化后的数据进行相关性分析 ①重复数据输入步骤,输入取对数后的数据如图:

②在弹出的窗口中选择ViewGraphScatterSimpleScatter按确定,得取对数后的Y、K、L三者之间关系的散点图,结果如下:

③通过对以上散点图的观察可以看出,取对数后的K、L的联合值对取对数后的Y的值有着显着的线性影响。

5、在 Eviews 主窗口中点击 QuickEstimateEquation,在弹出的方程设定框内输入模型:log(y)clog(k)log(l)(如图):

再点击确定,系统将弹出一个窗口来显示有关估计结果(如图)。

由图显示的结果可知,样本回归方程为:

Y ln =1.154+0.609 K ln +0.361 L ln

(1.59)(3.45)(1.75)其中 8099.02 R,2R =0.7963,F=59.66 4、对以上实验结果做 t 检验分析:

给定显着性水平5%,自由度为(2,28)的 F 分布的临界值为34.3 28 2(05.0),F,因此总体上看,K ln , L ln 联合起来对 Y ln 有着显着的线性影响。在 5%的显着性水平下,自由度为 28 的 t 分布的临界值为048.2)28(05.0 t,因此,K ln 的参数通过了该显着性水平下的 t 检验,但L ln 未通过检验。如果设定显着性水平为 10%,t 分布的临界值为701.1)28(05.0 t,这时 L ln 的参数通过了显着性水平的检验。

2R =0.7963 表明,工业总产值对数值的 79.6%的变化可以由资产合计的对数与职工的对数的变化来解释,但仍有 20.4%的变化是由其他因素的变化影响的。

(五)参数的约束检验 由以上的实验结果可以看出,1 97.0     ,即资产与劳动的产出弹性之和近似为1,表明中国制造业在2000年基本呈现规模报酬不变的状态。因此,进行参数的约束检验时,提出零假设为0H :1    。

如果原假设为真,则可估计如下模型:

1、在 Equation 窗口选择 proc/Specify/Estimate 在弹出的窗口中输入 log(y/l)clog(k/l)如图所示:按确定,所得结果如下:

容易看出,该估计方程通过了 F 检验与参数的 t 检验。

2、对规模报酬是否变化进行的分析 由上面两个实验可以得到 0703.5 URSS,0886.5 RRSS。在原假设为真的条件下有:

 )1 2 31(1)(UU RRSSRSS RSSF28 0703.50703.5 0886.5 =0.1011 在 5%的显着性水平下,自由度为(1,28)的 F 分布的临界值为 4.20。因为 0.1011<4.20,所以不拒绝原假设,表明 2000 年中国制造业呈现规模报酬不变的状态。

3、运用参数约束条件 12 1    对上面假设模型进行检验 打 开 eq01 方 程 对 象 窗 , 点 击ViewCoefficientTestsWaldCoefficientRestrictions…,在 Waldtests窗口设定参数约束条件:c(2)+c(3)=1。再按 OK,结果如下图:

由以上实验结果可知,我们仍然不拒绝原假设,原假设为真,即中国该年的制造业总体呈现规模报酬不变状态。

数据结构实验报告三线性表的链式存储 篇5

代码如下:

代码如下:

/////////

// 顺序存储线性表

////////

package main

import “fmt”

const MAXSIZE = 20 //定义数组长度

//定义线性表结构

type List struct {

Element [MAXSIZE]int //存储线性表元素的数组

lengthint//线性表长度

}

//初始化线性表,d:初始化的元素, l位置

func (l *List) InitList(d int, p int) {

l.Element[p] = d

l.length++

}

//插入元素

//d:插入的数据

//p:插入位置

func (l *List) Insert(d int, p int) bool {

if p < 0 || p >= MAXSIZE || l.length >= MAXSIZE {

return false

}

if p < l.length {

for k := l.length - 1; k >= p; k-- {

l.Element[k+1] = l.Element[k]

}

l.Element[p] = d

l.length++

return true

} else {

l.Element[l.length] = d

l.length++

return true

}

}

//删除元素

//p:删除元素的位置

func (l *List) Delete(p int) bool {

if p < 0 || p >l.length || p >= MAXSIZE {

return false

}

for ; p < l.length-1; p++ {

l.Element[p] = l.Element[p+1]

}

l.Element[l.length-1] = 0

l.length--

return true

}

func main {

var l List

i := 0

b := 1

//初始化一个线性表

for i < 15 {

l.InitList(b, i)

i++

b++

}

//插入一个元素

l.Insert(1, 13)

//删除一个元素

l.Delete(5)

fmt.Println(l)

}

上一篇:市优秀少先队员材料下一篇:外贸英语中的感谢信