欢迎来到天天文库
浏览记录
ID:33422175
大小:290.00 KB
页数:15页
时间:2019-02-25
《数据结构域算法设计-实验一 单链表 实验二 栈和队列的基本操作及其应用)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、帮助读者复习C语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。三、基本要求(1)依次从键盘读入数据,建立带头结点的单链表;(2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。四、实验步骤(1)程序如下:#include#includetypedefcharElemType;structLNode{El
2、emTypedata;structLNode*next;};//***********************************************************放置空表setnull()voidsetnull(structLNode**p){*p=NULL;}//************************************************************求长度length()intlength(structLNode**p){intn=0;structLNode*q=*p;while(q!=NULL){n++;q=q->next;}retur
3、n(n);}//*************************************************************取结点get()ElemTypeget(structLNode**p,inti){intj=1;structLNode*q=*p;while(jnext;j++;}if(q!=NULL)/**//*找到了第i个结点*/return(q->data);else{printf("位置参数不正确!");returnNULL;}}//*******************************
4、*****************************按值查找locate()intlocate(structLNode**p,ElemTypex){intn=0;structLNode*q=*p;while(q!=NULL&&q->data!=x)/**//*查找data域为x的第一个结点*/{q=q->next;n++;}if(q==NULL)/**//*未找到data域等于x的结点*/return(-1);else/**//*找到data域等于x的结点*/return(n+1);}//*************************************************
5、*********插入结点insert()voidinsert(structLNode**p,ElemTypex,inti){intj=1;structLNode*s,*q;s=(structLNode*)malloc(sizeof(structLNode));/**//*建立要插入的结点s*/s->data=x;q=*p;if(i==1)/**//*插入的结点作为头结点*/{s->next=q;*p=s;}else{while(jnext!=NULL)/**//*查找第i-1个结点*/{q=q->next;j++;}if(j==i-1)/**//*找到了第i-1个结点,由
6、q指向它*/{s->next=q->next;/**//*将结点s插入到q结点之后*/q->next=s;}elseprintf("位置参数不正确!");}}//*********************************************************删除结点del()voiddel(structLNode**p,inti){intj=1;structLNode*q=*p,*t;if(i==1)/**//*删除链表的头结点*/{t=q;*p=q->next;}else{while(jnext!=NULL)/**//*查找第i-1个结点*/{q=q
7、->next;j++;}if(q->next!=NULL&&j==i-1)/**//*找到第i-1个结点,由q指向它*/{t=q->next;/**//*t指向要删除的结点*/q->next=t->next;/**//*将q之后的结点删除*/}elseprintf("位置参数不正确!");}if(t!=NULL)/**//*在t不为空时释放该结点*/free(t);}//*****************
此文档下载收益归作者所有