班级学号姓名实验组别
试验日期室温报告日期成绩
报告内容:(目的和要求、原理、步骤、数据、计算、小结等)
实验名称:链表的实现与应用
实验目的:
掌握链表的概念。
熟练掌握线性表的链式存储结构。
熟练掌握线性表在链式存储结构上的运算。
实验环境(硬/软件要求):
Windows 2000, Visual C++
实验内容:
编写算法,根据用户输入的字符数据用尾插入法创建一个带头结点的单链表,“#”作为输入数据的结束符。
编写算法,实现在带有头结点的单链表中按序号查找的函数。
假设单链表中包含6个数据元素,测试数据是:①查找第0个;②查找第一个;③查找第2个;④查找第6个;⑤查找第7个;
实验要求
完成链表存储结构的类型设计。
完成链表带头结点尾插入法函数。
完成按序号查找函数。
编写主函数完成实验内容的要求。
【C语言源程序】
#include <>
#include<>
typedef char datatype;
typedefstruct node
{
datatype data;
struct node *next;
}
linklist;
linklist *createlist()/*尾插入法建立带头结点的单链表,返回表头指针*/
{
charch;
linklist*head,*s,*r;
head=(linklist*)malloc(sizeof(linklist));/*生成头结点head*/
r=head;
printf("请输入字符产生的链表,以#结束\n");/*尾指针指向头结点*/
ch=getchar();
while(ch!='#') /*“#”为输入结束符*/
{
s=(linklist*)malloc(sizeof(linklist)); /*生成新结点*s*/
s->data=ch;
r->next=s; /*新结点插入表尾*/
r=s; /*尾指针r指向新的表尾*/
ch=getchar(); /*读入下一个结点的值*/
}
r->next=NULL;
return head; /*返回表头指针*/
} /*createlist*/
/*在带头结点的单链表head中查找第i个结点,若找到,则返回该结点的存储位置;否则返回NULL*/
linklist *get(linklist *head,inti)
{
int j;
linklist *p;
p=head;j=0; /*从头结点开始扫描*/
while((p->next!=NULL) && (j<i))
{
p=p->nex
链表的实验报告 来自淘豆网m.daumloan.com转载请标明出处.