实验二

一..实验目的

     巩固线性表的数据结构,学会线性表的应用。

1.回顾线性表的逻辑结构,线性表的物理存储结构和常见操作。

2.学习运用线性表的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第2周到第4周,具体集中实验时间为第4周第2次课。2个学时。

三..实验内容

1.建立一个N个学生成绩的顺序表,对表进行插入、删除、查找等操作。分别输出结果。

要求如下:

1)用顺序表来实现。

2)用单链表来实现。

 

源代码:

1.head.h

#ifndef head_H
#define head_H
const int N = 50;
class Student
{
public:
 Student(){ length = 0; }
 Student(int a[], int n);
 ~Student(){};
 void insert(int i, int x);
 int del(int i);
 int locate(int x);
 void print();
private:
 int data[N];
 int length;
};
#endif

 

2.func.cpp

#include<iostream>
#include"head.h"
using namespace std;
Student::Student(int a[], int n)
{
 if (n>N) throw "parameter illegal";
 for (int i = 0; i<n; i++)
  data[i] = a[i];
 length = n;
}
void Student::insert(int i, int x)
{
 if (length >= N) throw "overflow";
 if (i<1 || i>length + 1) throw "location illegal";
 for (int j = length; j >= i; j--)
  data[j] = data[j - 1];
 data[i - 1] = x;
 length++;
}
int Student::del(int i)
{
 if (length == 0) throw "underflow";
 if (i<1 || i>length + 1) throw "location illegal";
 int x = data[i - 1];
 for (int j = i; j<length; i++)
  data[j - i] = data[j];
 length--;
 return x;
}
int Student::locate(int x)
{
 for (int i = 0; i<length; i++)
 if (data[i] == x)return i + 1;
 return 0;
}
void Student::print()
{
 cout << "所有学生成绩如下:";
 for (int i = 0; i<length; i++)
  cout << data[i] << "   ";
 cout << endl;
}

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值