实验二:单链表实现N个学生成绩操作
来源:互联网 发布:mac刺客信条2登陆白屏 编辑:程序博客网 时间:2024/04/27 21:36
LinkList.h
#ifndef LinkList_H#define LinkList_Htemplate<class DataType>struct Node{DataType data;Node<DataType>*next;};template<class DataType>class LinkList{public:LinkList();LinkList(DataType a[],int n);~LinkList();int Locate(DataType x);void Insert(int i,DataType x);DataType Delete(int i);void PrintList();private:Node<DataType>*first;};#endif
LinkList.cpp
#include<iostream>using namespace std;#include"LinkList.h"template<class DataType>LinkList<DataType>::LinkList(){first=new Node<DataType>;first->next=NULL;}template<class DataType>LinkList<DataType>::LinkList(DataType a[],int n){Node<DataType>*r,*s;first=new Node<DataType>;r=first;for(int i=0;i<n;i++){s=new Node<DataType>;s->data=a[i];r->next=s;r=s;}r->next=NULL;}template<class DataType>LinkList<DataType>::~LinkList(){Node<DataType>*q=NULL;while(first!=NULL){q=first;first=first->next;delete q;}}template<class DataType>void LinkList<DataType>::Insert(int i,DataType x){Node<DataType>*p=first,*s=NULL;int count=0;while(p!=NULL&&count<i-1){p=p->next;count++;}if(p==NULL)throw"位置";else{s=new Node<DataType>;s->data=x;s->next=p->next;p->next=s;}}template<class DataType>DataType LinkList<DataType>::Delete(int i){Node<DataType>*p=first,*q=NULL;DataType x;int count=0;while(p!=NULL&&count<i-1){p=p->next;count++;}if(p==NULL||p->next==NULL)throw"位置";else{q=p->next;x=q->data;p->next=q->next;delete q;return x;}}template<class DataType>int LinkList<DataType>::Locate(DataType x){Node<DataType>*p=first->next;int count=1;while(p!=NULL){if(p->data==x)return count;p=p->next;count++;}return 0;}template<class DataType>void LinkList<DataType>::PrintList(){Node<DataType>*p=first->next;while(p!=NULL){cout<<p->data<<" ";p=p->next;}cout<<endl;}
LinkList_main.cpp
#include<iostream>using namespace std;#include"LinkList.cpp"void main(){int r[5]={95,68,87,85,82};LinkList<int>L(r,5);cout<<"5个学生的成绩分别是:"<<endl;L.PrintList();cout<<"现有A学生成绩为89"<<endl; try{L.Insert(3,89);}catch(char *s){cout<<s<<endl;}cout<<"将A学生的成绩插到第3个后成绩为:"<<endl;L.PrintList();cout<<"成绩为85的学生排在:";cout<<L.Locate(85)<<endl;cout<<"删除第4个学生的成绩前,所有学生成绩分别为:"<<endl;L.PrintList();try{L.Delete(4);}catch(char *s){cout<<s<<endl;}cout<<"删除后所有学生成绩分别为:"<<endl;L.PrintList();}
0 0
- 实验二:单链表实现N个学生成绩操作
- 实验二:顺序表实现N个学生成绩操作
- 实验二:学生成绩之单链表操作
- 实验二 单链表实现学生成绩
- 终于完成~《数据结构》实验二:线性表的实验(实现一个N个学生成绩的顺序表)
- 实验二 顺序表实现学生成绩
- 实验二 双链表实现学生成绩
- 实验二 间接寻址实现学生成绩
- 实验二 创建学生成绩-单链表
- 单链表实现学生成绩操作
- 实验2.2 单链表实现学生成绩管理
- 实验二 静态链表实现学生成绩
- 实验二 创建学生成绩-顺序表
- 实验二 创建学生成绩-双链表
- 实验二 创建学生成绩-间接寻址
- C++实验 学生成绩
- 顺序表实现学生成绩操作
- 输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩。
- 用户注册表单实现
- artDialog
- copy 与 mutablecopy
- 开启博客生涯
- Android - match_parent 和 fill_parent的区别
- 实验二:单链表实现N个学生成绩操作
- 【AC自动机】 CodeForces - 163E
- Visual Studio原生开发的10个调试技巧
- POJ 3652 & ZOJ 2934 & HDU 2721 Persistent Bits(数学 进制)
- Unix波澜壮阔的发展史
- View_Three_视图状态_141105
- View_Four_自绘控件_141106
- 数据库常见问题
- UVa11926 - Multitasking(排序问题)