编写main函数测试线性表的正确性
时间: 2023-05-20 21:06:45 浏览: 76
好的,以下是一个简单的main函数,用于测试线性表的正确性:
```
#include <iostream>
#include "LinearList.h"
using namespace std;
int main() {
LinearList<int> list(10);
for (int i = 0; i < 10; i++) {
list.insert(i, i + 1);
}
for (int i = 0; i < 10; i++) {
int value;
list.get(i, value);
cout << value << " ";
}
return 0;
}
```
这个main函数创建了一个长度为10的线性表,然后插入了10个元素,最后遍历线性表并输出每个元素的值。如果线性表的实现正确,输出应该是1到10的整数序列。
相关问题
编写main函数测试template情况下线性表的基本功能的正确性
好的,可以的。以下是一个示例的main函数,用于测试template情况下线性表的基本功能的正确性:
```
#include <iostream>
#include "List.h"
using namespace std;
int main() {
List<int> myList;
// 测试插入元素
myList.insert(0, 1);
myList.insert(1, 2);
myList.insert(2, 3);
// 测试获取元素
cout << "第一个元素是:" << myList.get(0) << endl;
cout << "第二个元素是:" << myList.get(1) << endl;
cout << "第三个元素是:" << myList.get(2) << endl;
// 测试删除元素
myList.remove(1);
// 再次测试获取元素
cout << "第一个元素是:" << myList.get(0) << endl;
cout << "第二个元素是:" << myList.get(1) << endl;
return 0;
}
```
这个main函数创建了一个List对象,然后测试了插入、获取和删除元素的功能。你可以根据自己的需要修改这个main函数,测试其他的功能。
写实验报告:关于根据线性表的抽象数据类型的定义,选择下面任意一种链式结构实现线性表,并完成线性 表的基本功能。 线性表存储结构(五选一): ①带头结点的单链表; ②不带头结点的单链表; ③循环链表; ④双链表; ⑤静态链表。 线性表的基本功能: ①构造(使用头插法、尾插法两种方法); ②插人(要求建立的链表按照关键字从小到大有序); ③删除; ④查找; ⑤获取链表长度; ⑥销毁; ⑦其他(可自行定义)。编写main函数测试线性表的正确性
以下是一个使用带头结点的单链表实现线性表的示例代码:
```c++
#include <iostream>
using namespace std;
// 定义链表节点结构体
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 定义线性表类
class List {
private:
ListNode* head; // 头节点指针
public:
// 构造函数
List() {
head = new ListNode(0); // 创建头节点
}
// 析构函数
~List() {
ListNode* p = head;
while (p) {
ListNode* q = p->next;
delete p;
p = q;
}
}
// 头插法构造链表
void createHeadList(int n) {
for (int i = 0; i < n; i++) {
int x;
cin >> x;
ListNode* p = new ListNode(x);
p->next = head->next;
head->next = p;
}
}
// 尾插法构造链表
void createTailList(int n) {
ListNode* tail = head;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
ListNode* p = new ListNode(x);
tail->next = p;
tail = p;
}
}
// 按关键字从小到大插入节点
void insert(int x) {
ListNode* p = head;
while (p->next && p->next->val < x) {
p = p->next;
}
ListNode* q = new ListNode(x);
q->next = p->next;
p->next = q;
}
// 删除节点
void remove(int x) {
ListNode* p = head;
while (p->next && p->next->val != x) {
p = p->next;
}
if (p->next) {
ListNode* q = p->next;
p->next = q->next;
delete q;
}
}
// 查找节点
ListNode* find(int x) {
ListNode* p = head->next;
while (p && p->val != x) {
p = p->next;
}
return p;
}
// 获取链表长度
int length() {
int len = 0;
ListNode* p = head->next;
while (p) {
len++;
p = p->next;
}
return len;
}
// 销毁链表
void destroy() {
ListNode* p = head;
while (p) {
ListNode* q = p->next;
delete p;
p = q;
}
head = NULL;
}
// 输出链表
void print() {
ListNode* p = head->next;
while (p) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
};
int main() {
List list;
int n;
cin >> n;
list.createHeadList(n); // 使用头插法构造链表
list.print(); // 输出链表
list.insert(5); // 插入节点
list.print(); // 输出链表
list.remove(3); // 删除节点
list.print(); // 输出链表
ListNode* p = list.find(4); // 查找节点
if (p) {
cout << "Found: " << p->val << endl;
} else {
cout << "Not found" << endl;
}
cout << "Length: " << list.length() << endl; // 获取链表长度
list.destroy(); // 销毁链表
return 0;
}
```
注意:以上代码仅为示例,实际实验报告中应该根据具体要求进行修改和完善。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)