一、实验目的
1、 会定义单链表的结点类型。
2、 会对单链表的一些基本操作和具体的函数定义。
3、 了解和掌握单链表的类定义以及成员函数的定义与调用格式。
二、实验内容
该程序实现了链表的建立和输出。
三、实验步骤
1、启动VC++6.0
2、输入程序
(1)link.h
typedef int ElemType;
typedef struct LNode
{
ElemType data;
LNode *next;
}*LinkList;
void CreateList(LinkList &L,int n) ;
void CreateList2(LinkList &L,int n);
void printList(LinkList L);
(2)linkc.cpp
#include<stdio.h>
#include<stdlib.h>
#include "link.h"
void CreateList(LinkList &L,int n) // 算法2.11
{ // 逆位序(插在表头)输入n个元素的值,建立带表头结构的单链线性表L
int i;
LinkList p;
printf("请输入%d个数据\n",n);
printf("按逆位序:\n");
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i){
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void CreateList2(LinkList &L,int n)
{ // 正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表
int i;
LinkList p,q;
L=(LinkList)malloc(sizeof(LNode)); // 生成头结点
L->next=NULL;
q=L;
printf("请输入%d个数据\n",n);
for(i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
q->next=p;
q=q->next;
}
p->next=NULL;
}
void printList(LinkList L)
{
LinkList p;
for(p=L->next;p!= NULL;p=p->next)
printf("%d ",p->data);
(3)linkmain.cpp
#include<stdio.h>
#include "link.h"
void main()
{
int n=10;
LinkList La,Lb,Lc;
//CreateList2(La,n); // 正位序输入n个元素的值
//printf("La="); // 输出链表La的内容
//printList(La);
//printf("\n");
CreateList(Lb,n); // 逆位序输入n个元素的值
printf("Lb="); // 输出链表Lb的内容
printList(Lb);
}
3、运行程序、查错。