有序表的建立与操作_第1页
有序表的建立与操作_第2页
有序表的建立与操作_第3页
有序表的建立与操作_第4页
有序表的建立与操作_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、有序表的建立和操作1. 内容:对根本数据分别为整数、字符、学生情况(含学号、姓名、语文成绩、数学成绩、 英语成绩、计算机成绩,总分;总分作为排序标准,利用c+的模板类、模板函数等.编 写通用的类定义.使之适用于三种不同的数据.实现有序表的建立.即在扫描读入数据并加 入表中时,即要求保持分别按整数、字符或学生情况(按总分)有序。实现表的元素插入、 删除、修改和输出操作.2. 要求:在沛程中注术流程中出借情况的判断,及时加以捕获(catch)异常,保i正程序正确 运行。理解类型定义:掌握:模板类、模板函数、类定义、插入、删除、修改和打印操作。3 .设计与编码orderlink.httifndef

2、orderlinkhttdefine orderlinkji#include<string>struct student student() = default;student(string si, string s2, int chs, int ms, int es, intcps):stunum(si), name(s2), chinesescore(chs), mathscore(ms),engl ishscore('s),computerscore(cps), score(chinesescore + mathscore +englishscore + comput

3、erscore)(string stunum;string name:int chinesescore = 0:int mathscore = 0;int englishscore = 0:int computerscore = 0;int score = 0:;template<class datatype>struct nodedatatype data:xode<datatype> * next:;template<class datatype>class orderlink(public:order linko :'order link。;b

4、ool insert(int i);bool insert (char c);bool insert (student stu);void print(order link<int> &intlink):void printlink<char> &charlink);void print (h(1. > link<student> &stulink):datatype delete(int i):datatypc modify(order link<int> ftlntlink, int i):datatype mo

5、dify(orderlink<char> &charlink» int i):datatype modify(orderlink<student> &stulink, int i); private:xode<datatype> * first:;ttendiforder link, cppinclude "stdafx.h"#include<iostream>#include<string>using namespace std;#include"*order link, h&

6、quot; template<class datatype>order link<datatype>: :orderlink()(f i rsl = new nod('<datatyp('> first->next = null;template<class datatype>order l.ink<datatype>: :orderlink() ode<f)atatypc> * q = null;while (first != null)q = first;first = first->nex

7、t:delete q;template<class datatype> boo 1 order link<dcit;it pf>: insert (int i)if (s = null)cout « ”分配内存失败! " « endl;return 1;s->data = i;node<int> * pre = first;node<int> * p = first->next;while (p != null && p->data > i)pre = p;p = p->

8、next;s->next = p;pre->next = s;/ cout « "success" « endl:return 0;template<class datatype>node<char> * s = new node<char>if (s = null)cout « "分配内存失败!" « endl:return 1;s->data = c;xode<char> * pre = first;xode<char> * p =

9、first->next;while (p != null && p->data > c)pre = p:p = p->next;s->next = p;pre->next = s;return 0;template<class datatype>boollink<datatypc>: : insefl . 11: stu)node<student> * s = new node<student>if (s = null)cout « ”分配内存失败!" « endl

10、;return 1;s->data = stu:node<student> * pre = first;xode<student> * p = first->next;while (p != null && (p->data). score > stu.score) pre = p:p = p->next;s->next = p;pre->next = s;return 0;template<class datatype> void (inb nk<datatype>:print(orck

11、n; link<int> &in(link)node<datatype> * p = intlink. first:p = p>next;while (p != null)cout « p->datap = p->next;cout « endl: template<class datatype> void orderlink<datatype>:print(orderlink<char> ftcharlink)node<datatype> * p = chari.ink. f

12、irst;p = p->next:while (p != null)cout « p->data « "p = p->next:cout « endl:template<class datatype>void oid('r link<dalatyp(*>:print(ord(*r link<studeni> &stulink)(node<datatype> * p = stulink. first;cout « "学号"« “姓名”

13、« "语文 « "数学”« "英语”« ”计算机”« "总分”« endl;p = p->next;while (p != null)cout « (p->data). stunum «« (p->data). name ""«(p->data). chinesescore «« (p->data). mathscore« ' " «(p->d

14、ata). englishscore « "t" «(p->data). computerscore «« (p->data). score « endl;p = p->next;template<class datatype> 1 i l : r» 'h(b rlink<dataty|ie>: :delete(int i)(node<datatype> * p = first, *q = null;datatypc x;int count = 0;wh

15、ile (p != null && count < i - 1)p = p->next:/count;if (p = null | p->next = null)throwlocation*:elseq = p->next;x = q->data;p->next = q->next;delete q;return x;template<class datatype>datatype orderlink<datatype>:modify(orderlink<int> & i ntlink, in

16、t i)int m, n;m = intlink. delete(i);cout « endl « m « endl:cout « "将第” « i « "个值修改为cin » n;intlink. insert(n):return n;template<class datatype>datatype orderlink<datatype>:modi fy(orderlink<char> ftcharlink, int i)m = charunk. delete(i);

17、cout « endl « m « endl:cout « "将第"« i « ”个值修改为:、cin » n;( lihr l. i nk. insert (n);return n:)tcmplatc<class datatype>datatype order ijnk<datatype>:modify(order link<student>&stulink, int i)student m, n;m = stulink. delete(i):cout 

18、71; endl « m.stunum <<« m.name ««m.chinesescore <<« m. mathscore ««m.englishscore «« m. computerscore ««m.score « endl:cout « "将第”« i « ”个值修改为:";cin » n. stunum » n. name » n.chinesescore

19、» n. mathscore »n.englishscore » n. computerscore ;student s(n. stunum, n. name, n. chinesescore, n.mathscore,n.englishscore, n. computerscore);stulink. insert(s);return n:consoleapplicalionl1. cpp/ consoleapplicationl 1. cpp :定义控制台应用程序的入口点。/ttinclude "stdafx. h"ttinclude<

20、;iostream>#include<string>using namespace std;甘includc"()rdcrlink cpp”int tmain(int argc, tciiar* argv)int arr6 = 1, 4,5, 21, 24, 51 ;char ch 8 = 板,'t', ' q', ' v', '1', 's', ' x', ' p' ;student stu0("1234”,luyi”, 25, 25, 25,

21、 25);50, 50, 50, 50):student stul ("5678”, "sonk”,com « "整数有序链表测试:"« endl;orderjjnk<int> intunk;for (int i = 0: i < 6: i+)intlink. insert(arri);intlink. forint (intlink);intlink.modify(intlink, 2);intlink. print(intlink);int k:cout « "删除元素位置:”;cin 

22、87; k:intlink. delete(k);intlink. print (intlink);cout « endl « endl;cout « "字符有序链表测试:"« endl;ord('r link<char> charlink;for (int i = 0; i < 8; i+)charlink. insert(chi);charlink. print(charlink);charlink. print(charlink);/ int k:cout « "删除元素位置:”;cin » k;charlink. l)clctc(k);charlink. print(charlink);cout « endl « endl:cout « "学生情况有序链表测试:"« endl;order link<studeni> stulink;/ for (int i = 0: i < 2; i+)/ stulink. i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论