数据结构实验一 实验报告 下载本文

《数据结构实验》实验报告

班级: 姓名: 学号:

实验一 线性表的基本操作

一、 实验目的

1、掌握线性表的定义;

2、掌握线性表的基本操作,如建立、查找、插入和删除等。

二、 实验内容

定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能:

(1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息;

(3) 根据姓名进行查找,返回此学生的学号和成绩;

(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。

三、 实验环境

Visual C++

四、 程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

第 1 页 共 14 页

《数据结构实验》实验报告

typedef int Status; // 定义函数返回值类型

typedef struct {

char num[10]; // 学号 char name[20]; // 姓名 double grade; // 成绩 }student;

typedef student ElemType;

typedef struct LNode {

ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList;

Status InitList(LinkList &L) // 构造空链表 L {

L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL;

第 2 页 共 14 页

《数据结构实验》实验报告

return OK; }

Status GetElem(LinkList L,int i,ElemType &e) // 访问链表,找到 i位置的数据域,返回给 e {

LinkList p; p=L->next; int j=1; while(p&&j

if(!p||j>i) return ERROR; e=p->data; return OK; }

Status Search(LNode L,char str[],LinkList &p) // 根据名字查找 {

p=L.next;

第 3 页 共 14 页

p=p->next; ++j;