实验二线性表综合实验4

来源:互联网 发布:算法c语言实现高清pdf 编辑:程序博客网 时间:2024/05/03 02:18

一.实验目的

     巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。

二..实验内容

1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。

要求如下:

2)用静态链表来实现。

三、源代码

#include<iostream>using namespace std;#define MAXSIZE 100typedef int T;typedef struct Node{    T data;    int cur; } StaticLinkList[MAXSIZE];bool InitList(StaticLinkList array){    cout << "InitList..." << endl;    for (int i = 0; i < MAXSIZE - 2; i++)    {        array[i].cur = i + 1;    }    array[MAXSIZE - 2].cur = 0;      array[MAXSIZE - 1].cur = 0;       return true;}int Malloc_SLL(StaticLinkList array){    int k = array[0].cur;    if (k)        array[0].cur = array[k].cur;    return k;}void Free_SLL(StaticLinkList array, int pos){    array[pos].cur = array[0].cur;     array[0].cur = pos; }int ListLength(StaticLinkList array){    int i = array[MAXSIZE - 1].cur;    int j = 0;    while(i)    {        i = array[i].cur;        ++j;    }    return j;}bool ListInsert(StaticLinkList array, int pos, T Elem){    cout << "Insert List from pos: " << pos << " Item " << Elem << endl;    if (pos < 1 || pos > ListLength(array) + 1)        return false;    int k = MAXSIZE - 1;    int i = Malloc_SLL(array);    if (i)    {        array[i].data = Elem;        for (int l = 1; l <= pos - 1; l++)            k = array[k].cur;        array[i].cur = array[k].cur;        array[k].cur = i;        return true;    }    return false;}bool ListDelete(StaticLinkList array, int pos){    cout << "Delete List from pos: " << pos << endl;    if (pos < 1 || pos > ListLength(array))        return false;    int k = MAXSIZE - 1;    for (int l = 1; l <= pos - 1; l++)        k = array[k].cur;    int j = array[k].cur;    array[k].cur = array[pos].cur;    Free_SLL(array, j);    return true;}bool ListTraverse(StaticLinkList array){    cout << "List Traverse : " << endl;    int k = MAXSIZE - 1;    while (array[k].cur != 0)    {        k = array[k].cur;        cout << array[k].data << ' ';    }    cout << endl;    return true;}int main(){    StaticLinkList SSL;    InitList(SSL);    for (int i = 1; i < 5; i++)        ListInsert(SSL, i, i);    ListTraverse(SSL);    ListDelete(SSL, 3);    ListTraverse(SSL);    cout << "List Length : " << ListLength(SSL) << endl;    return 0;}
四、实验结果



原创粉丝点击