已知
typedef struct student{ //构建student数据类型
long num;
char name[20];
float score;
};
typedef struct student ElemType; //单链表的类型定义
typedef struct LNode{
ElemType data;t
struct LNode *next;
}LNode,*LinkList;
实现下列单链表的有关算法并调用之。
1、线性表的构造。构造一个含有10名同学元素的单链表,同学数据可从键盘输入。
2、线性表的输出。输出单链表中的元素值。
3、线性表的查找。在给定的单链表上按照某个同学e的学号查找其是否在表中,若找到,函数返回值为其在表中的位置,否则返回-1。
4、线性表的插入。在给定的单链表中插入一个同学e。
5、线性表的删除。在单链表L中删除同学结点e。删除成功返回1,否则返回0。
注意:写出一个完整的程序,在主函数中实现对各个函数的调用,作为验证,每进行一次线性表的有关操作后,最好调用“线性表输出”算法用来显示变化后的线性表元素。
实验要求:
(1) 程序要添加适当的注释,程序的书写要采用缩进格式。
(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。
(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。
提示:程序的主要结构形式
(按照下面给定的程序结构组织程序(包括函数的名称及其调用形式),可能用到的其它函数自己可以补充)
#include<stdlib.h>
#include<stdio.h>
#include <iostream.h>
typedef int Status;
#define OVERFLOW -2
#define OK 1
#define ERROR -1
typedef struct student{ //构建student数据类型
long num;
char name[20];
float score;
};ElemType
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//函数定义部分:
//1、线性表的构造。构造一个含有n名同学元素的带附加结点的单链表,同学//数据可从键盘输入。
void create_linklist( LinkList &L, int n)
{
}
//2、线性表的输出。输出单链表中的元素值。
void print_linklist(LinkList L)
{
}
//3、线性表的查找。在给定的单链表上按照某个同学e的学号查找其是否在表//中,若找到,函数返回值为其在表中的位置,否则返回-1。
int search_linklist(LinkList L,long num)
{//num为要查找的同学学号参数,实参在数函数中给出
}
//4、线性表的插入。在给定的单链表中插入一个同学e。
int insert_linklist(LinkList &L,ElemType e)//插入成功返回值为1,否则返回值为0
{
}
//5、线性表的删除。在单链表L中删除给定同学学号num的结点。删除成功返//回1,否则返回0。
int del_linklist(LinkList &L,long num)
{
}
//主函数
int main()
{
LinkList list;
int m;
long num1;
ElemType e1;
printf("Input length of list:\n");
scanf("%d",&m);
create_linklist( list, m);
printf("The elements of the created list are as follows :\n");
print_list(list);
print("Input the num of the element to be searched:\n");
scanf(.......);
if(search_linklist(list,num1))printf("it is in the list\n");
else printf(...........);//输出相关提示
printf("Input the element to be inserted into the list:\n");
.........//一组输入语句为元素e1赋值
if(......)//若插入成功
{
printf("The list to be inserted into a elment is as follows:\n");
print_list(list);
else printf(........);//给出插入不成功的提示
printf("Input the num of the element to be deleted :\n");
.........//输入即将删除的元素的学号num1
if(......)//若删除成功
{
printf("The list to be deleted a elment is as follows:\n");
print_list(list);
else printf(........);//给出删除不成功的提示
return 0;
}