数据结构实验二--链表实验.doc

数据结构实验二--链表实验.doc

ID:55706717

大小:26.00 KB

页数:7页

时间:2020-05-25

数据结构实验二--链表实验.doc_第1页
数据结构实验二--链表实验.doc_第2页
数据结构实验二--链表实验.doc_第3页
数据结构实验二--链表实验.doc_第4页
数据结构实验二--链表实验.doc_第5页
资源描述:

《数据结构实验二--链表实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二链表实验一、实验目的1.学会定义单链表的结点类型,实现对单链表的一些基本操作和具体的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。2.掌握单链表基本操作及单链表逆置等操作的实现。二、实验要求1.预习C语言中结构体的定义与基本操作方法。2.对单链表的每个基本操作用单独的函数实现。3.编写完整程序完成下面的实验内容并上机运行。4.整理并上交实验报告。三、实验内容1.编写程序完成单链表的下列基本操作:1)用头插入法生成一个链表[13579],结点的数值从键盘上输入。输出上述链表2)在链表的第1个位置插入元素10,输出上述链表;3)删除链表的第3个

2、元素,输出链表4)求链表的长度,并输出表长。#include"stdio.h"#include#includetypedefstructnode{intdata;structnode*next;}LNODE,*linkedlist;linkedlistlistinit(){linkedlistL;L=(LNODE*)malloc(sizeof(LNODE));if(L==NULL){printf("memorynotenough");exit(0);}L->next=NULL;returnL;}intlistlen(li

3、nkedlistL){linkedlistp;intj;p=L->next;j=0;while(p){j++;p=p->next;}returnj;}voidlistins(linkedlistL,inti,intx){linkedlistp,s;intj;p=L;j=0;while(p&&jnext;j++;}if(!p

4、

5、j>i){printf("positionerror");exit(0);}s=(LNODE*)malloc(sizeof(LNODE));s->data=x;s->next=p->next;p->next=s;}v

6、oidlistdel(linkedlistL,inti){linkedlistp,q;intj;p=L;j=0;while(p->next&&jnext;j++;}if(p->next==NULL

7、

8、j>i){printf("positionerror");exit(0);}q=p->next;p->next=q->next;free(q);}linkedlistlistbuild(){intx;LNODE*L,*p;L=(LNODE*)malloc(sizeof(LNODE));L->next=NULL;scanf("%d",&x);w

9、hile(x!=0){p=(LNODE*)malloc(sizeof(LNODE));p->data=x;p->next=L->next;L->next=p;scanf("%d",&x);}return(L);}voidmain(){linkedlistL,p;intk;printf("请输入L表的元素:");L=listbuild();printf("L表为:");p=L->next;while(p!=NULL){printf("%d",p->data);p=p->next;}listins(L,1,10);printf("在第一个位置插入10后

10、的L表为:");p=L->next;while(p!=NULL){printf("%d",p->data);p=p->next;}listdel(L,3);printf("删除第三个元素后的L表为:");p=L->next;while(p!=NULL){printf("%d",p->data);p=p->next;}k=listlen(L);printf("链表的长度为:%d",k);2.构造一个单链表L,其头结点指针为head,编写程序实现将L逆置。(即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。)#inclu

11、de"stdio.h"#include#includetypedefstructnode{intdata;structnode*next;}LNODE,*linkedlist;linkedlistlistinit(){linkedlistL;L=(LNODE*)malloc(sizeof(LNODE));if(L==NULL){printf("memorynotenough");exit(0);}L->next=NULL;returnL;}linkedlistlistbuild(){intx;LNODE*L,*p;L=(

12、LNODE*)malloc(sizeo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。