(时间:2011年10月11日 地点:新实验楼5428)
1、实验目的
(1)掌握用 C语言调试程序的基本方法。
(2)掌握链表的基本运算,如建立、插入、删除、查找等。
2、实验内容
线性表在链式存储结构上的建立、插入、删除、查找运算。
3、实验步骤
(1)建立单链表L并输出;
(2)在表L的第3个位置插入元素666; (3)删除表L的第8个元素;
(4)在表L中查找第3个元素并输出查找结果;
(5)在表L中查找其值为65的元素并输出查找结果。
根据步骤可知,需定义6个子函数:create_linklist(), print_linklist(), insert_linklist(), delete_linklist(), get_linklist(), locate_seqlist()。
4、算法思想
(1)单链表的建立
(请填入内容,用文字表达) (2)单链表的插入
(请填入内容,用文字表达) (3)单链表的删除
(请填入内容,用文字表达) (3)单链表的按序号查找 (请填入内容,用文字表达) (4)单链表的按值查找
(请填入内容,用文字表达)
5、源程序
(下面给出程序框架,请将程序补充完整。注意:代码可打印,一定要加注释。) 【程序框架】 #include\"stdio.h\" #include\"stdlib.h\" typedef int datatype; typedef struct node
{datatype data; struct node *next;
}lnode,*linklist; /*单链表类型定义*/
/**********函数声明**********/ linklist create_linklist(); void print_linklist(linklist l);
void insert_linklist(linklist l,int i,datatype x); void delete_linklist(linklist l,int i); lnode *get_linklist(linklist l,int i);
lnode *locate_linklist(linklist l,datatype x);
/**********主函数**********/ void main()
{linklist l;lnode *p; l=create_linklist();
print_linklist(l); /*第1步*/ insert_linklist(l,3,666);
print_linklist(l); /*第2步*/ delete_linklist(l,8);
print_linklist(l); /*第3步*/
p=get_linklist(l,3);
if(p==NULL)printf(\"have not this element\\n\"); else printf(\"%d\\n\ /*第4步*/ p=locate_linklist(l,65);
if(p==NULL)printf(\"have not this element\\n\"); else printf(\"%d\\n\ /*第5步*/ }
/**********子函数**********/
linklist create_linklist()/*用尾插法建立一个带头结点的单链表L,返回其头指针L*/ {
}
void print_linklist(linklist l)/*输出单链表L中各结点的值*/ {
}
void insert_linklist(linklist l,int i,datatype x)/*在单链表L的第i个位置插入元素x*/ {
}
void delete_linklist(linklist l,int i)/*删除单链表L中第i个元素*/ {
}
lnode *get_linklist(linklist l,int i)/*查找单链表L中第i个元素*/ {
}
lnode *locate_linklist(linklist l,datatype x)/*查找单链表L中其值等于x的元素*/ { }
6、测试数据及运行结果 (请填入内容)
7、实验小结 (请填入内容)
因篇幅问题不能全部显示,请点此查看更多更全内容