数据结构-实验一 链式存储结构的基本操作

这篇博客是广州大学学生的实验报告,重点介绍了链表作为数据结构的基础操作,涵盖了链表的创建、插入、删除等核心内容。
摘要由CSDN通过智能技术生成

广州大学学生实验报告

开课实验室:计算机科学与工程实验(电子楼417)     2018年5月09日

学院

计算机科学与教育软件学院

年级、专业、班

网络161

姓名

卟咚君

学号

1606100***

实验课程名称

数据结构实验

成绩

 

实验项目名称

实验一 链式存储结构的基本操作

指导老师

**

一、实验目的

掌握线性的定义及基本操作,用链表实现:遍历、查找、插入、删除、翻转。

二、使用仪器、器材

微机一台

操作系统:WinXP

编程软件:C++

三、实验内容及原理

(1)用随机函数生成8个3位整数(100~999),把这些整数存于链表中;

(2)输出链表的内容;

(3)读入一个整数,查看该整数是否在表中,若在,输出其位置(首位置为1);

(4)读入一个整数,以及要插入的位置,把该整数插入到链表中,输出链表的内容(要求判断输入的位置是否合理);

(5)读入一个整数,若该整数在链表里,删除该整数,输出链表的内容;

(6)把链表的内容翻转,输出链表的内容。

思路:通过定义一个class类 ListNode,表示链表的结点;

      通过定义一个class类 SingleList ,表示链表,封装了对链表的各种操作:

void MakeEmpty();                       //清空链表

    int Length();                           //返回链表的长度

    int Find(Type item);                    //在链表中查询数据item,找到则返回相应链表结点的位置,否则返回-1

    bool Insert(Type item, int n );         //在位置n的结点前插入一个新结点,新结点的data值为item

    ListNode<Type>* Get(int pos);           //查询链表的第n个链表结点,返回链表结点的指针

    bool Remove(int n);                     //删除第n个链表结点

    void Rollback();                        //对链表的内容进行翻转

    void Print();                           //输出链表的内容

 

源代码:

#include<iostream>

#include<ctime>

#include<cmath>

using namespace std;

template<typename Type> class ListNode{

public:

    ListNode() :data(0), next(NULL){}

    ListNode(const Type item, ListNode<Type> *next = NULL) :data(item), next(next){}

    ~ListNode(){

        next = NULL;

    }

 

public:

    Type GetData();

    friend ostream& operator<< <Type>(ostream&, ListNode<Type>&);

    Type data;

    ListNode *next;

};

 

template<typename Type> Type ListNode<Type>::GetData(){

    return this->data;

}

 

template<typename Type> ostream& operator<<(ostream& os, ListNode<Type>& out){

    os << out.data;

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值