间接寻址的基本操作实现
来源:互联网 发布:直播看电视的软件 编辑:程序博客网 时间:2024/05/30 02:25
一.实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。
二.实验内容
1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
三.源代码
#include <iostream>using namespace std;const int MaxSize=100;template<class DataType>struct Node{DataType data;}; //以下是类indirectaddressLink的声明 template<class DataType> class indirectaddressLink { public: indirectaddressLink(); indirectaddressLink(DataType a[],int n); ~indirectaddressLink(){}; int Locate(DataType x); void Insert(int i,DataType x); DataType Delete(int i); void PrintList(); private: Node<DataType>*address[MaxSize]; int length; }; //以下为类StaticLinkList的成员函数定义 template<class DataType> indirectaddressLink<DataType>::indirectaddressLink() { for(int i=0;i<MaxSize;i++) address[i]=NULL; length=0; } template<class DataType>indirectaddressLink<DataType>::indirectaddressLink(DataType a[],int n) { for(int i=0;i<n;i++) {address[i]=new Node<DataType>;address[i]->data=a[i];}length=n;}template<class DataType>void indirectaddressLink<DataType>::Insert(int i,DataType x){if(i<=length&&i>=0){for(int j=length;j>=i;j--){address[j]=address[j-1];}address[i-1]->data=x;length++;} else { throw"位置非法"; }} template<class DataType>DataType indirectaddressLink<DataType>::Delete(int i){if(i<length&&i>=0) { int x=address[i-1]->data; for(int j=i;j<length;j++) { address[j-1]=address[j];}length--;return x;}else{throw"位置非法"; }} template<class DataType> int indirectaddressLink<DataType>::Locate(DataType x) { int count; for(count;count<length;count++) { if(address[count]->data==x){ return count+1; } } return 0; } template<class DataType> void indirectaddressLink<DataType>::PrintList() { for(int i=0;i<length;i++) { cout<<address[i]->data<<endl;} }int main() { int r[5]={87,68,74,90,80}; indirectaddressLink<int>L(r,5); cout<<"执行插入成绩操作前数据为:"<<endl; L.PrintList(); try { L.Insert(2,70); } catch(char*s) { cout<<s<<endl; } cout<<"执行插入成绩操作后数据为:"<<endl; L.PrintList(); cout<<"值为74的元素位置为:"; cout<<L.Locate(74)<<endl; cout<<"执行删除第一个学生成绩操作前数据为:"<<endl; L.PrintList(); try { L.Delete(1); } catch(char*s) { cout<<s<<endl; } cout<<"执行删除成绩操作后数据为:"<<endl; L.PrintList(); }
四.实验截图
五.实验心得
通过这次实验,我基本掌握了间接寻址的操作。由于间接寻址是将数组和指针结合起来的一种方法,它将数组中存储数据元素的单元改为存储指向该元素的指针,所以间接寻址表的结点的定义,与插入、删除的相关操作都需要与之前的其他链表操作有不同。我通过仔细研究书上的相关知识点,并向相关同学询问一些问题,最后调试并运行成功出了程序。希望自己能够认真学习,继续努力。
阅读全文
0 0
- 间接寻址的基本操作实现
- 间接寻址储存的线性表—基本操作实现
- 间接寻址的实现
- 实验2.5 运用间接寻址实现对数据的基本操作
- 算法复习--------------基本算法:间接寻址的实现
- C++实现的间接寻址
- 操作数的寻址方式(寄存器间接,基址寻址,间址寻址,比例间接寻址)
- 间接寻址--简单操作
- 用间接寻址的方法实现表
- 间接寻址实现
- C++间接寻址实现
- 实验2.5 间接寻址实现成绩管理——基础操作的实现
- 间接寻址的基本及其应用(实验2.4)
- 间接寻址的基本及其应用(实验2.4)
- 间接寻址的自我练习
- 间接寻址
- 间接寻址
- 间接寻址
- 侧滑,头条,XlistView
- 坚持#第213天~零基础自学云计算基础语言应用6~10节
- 计算机视觉牛人博客和代码汇总
- ODDR2的使用
- Hibernate注解、类级别注解
- 间接寻址的基本操作实现
- Project Euler Problem 25 :1000-digit Fibonacci number
- 启动hive 遇到jline 版本冲突问题解决
- duobuju
- struts文件上传
- 侧拉 DrawerLayout
- Hadoop学习笔记(三)漫画解读HDFS读写原理
- 用c语言求解一元二次方程
- 注册表单验证的模块