大数据结构课程设计实验报告材料docWord下载.docx
《大数据结构课程设计实验报告材料docWord下载.docx》由会员分享,可在线阅读,更多相关《大数据结构课程设计实验报告材料docWord下载.docx(17页珍藏版)》请在冰豆网上搜索。
3在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE;
4在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE;
5在链表中按照有序方式插入一已知字符元素;
6在线性表中删除第i个结点;
7计算链表的长度。
五、实验内容一步骤:
#include<
stdio.h>
stdlib.h>
#defineMAX20
typedefintElemType;
typedefstruct
{
ElemTypeelem[MAX];
intlast;
}SeqList;
voidInitList(SeqList*L)
L->
last=-1;
}
voidPrintList(SeqList*L)
inti;
printf("
\n现在的数据为:
"
);
for(i=0;
i<
=L->
last;
i++)
printf("
%d"
L->
elem[i]);
}
voidCreatList(SeqList*L)
ElemTypee;
inti=0;
\n输入数据(-1退出):
scanf("
%d"
&
e);
while(e!
=-1)
{
if(i<
MAX)
{
L->
elem[i]=e;
last=i;
i++;
}
else
printf("
\n表满!
scanf("
}
voidLocate(SeqList*L,inti,ElemTypee)
i=0;
while((i<
last)&
&
(L->
elem[i]!
=e))
i++;
if(i<
last)
\n%d在顺序表中第%d个位置上。
e,i+1);
else
\n没有此数!
voidInsList(SeqList*L,inti,ElemTypee)
intk;
if(i<
1||i>
L->
last+2)
\n插入位置i值不合法"
elseif(L->
last>
=MAX-1)
\n表已满无法插入"
else
for(k=L->
k>
=i-1;
k--)
elem[k+1]=L->
elem[k];
elem[i-1]=e;
last++;
PrintList(L);
voidDelList(SeqList*L,inti,ElemType*e)
last+1)
\n删除位置不合法!
*e=L->
elem[i-1];
for(k=i;
k<
k++)
elem[k-1]=L->
L->
last=L->
last-1;
voidSumList(SeqList*L)
intj,sum=0;
for(j=0;
j<
j++)
sum=sum+L->
elem[j];
所有元素之和:
sum);
voidmenu()
\n************************菜单*********************"
\n1.创建任意整数线性表"
\n2.打印(遍历)线性表"
\n3.查找元素"
\n4.插入元素"
\n5.删除元素"
\n6.所有元素之和"
\n7.退出"
\n***********************************************"
voidmain()
intflag=0;
SeqList*L;
L=(SeqList*)malloc(sizeof(SeqList));
InitList(L);
menu();
while(!
flag)
\n\n请输入你的选择:
i);
switch(i)
{
case1:
CreatList(L);
break;
case2:
PrintList(L);
case3:
输入要查找的数值:
scanf("
Locate(L,i,e);
case4:
输入插入位置和数据值(ab):
%d%d"
i,&
InsList(L,i,e);
case5:
输入要删除元素的位置:
DelList(L,i,&
case6:
SumList(L);
case7:
flag=1;
六、实验内容一测试数据与实验结果:
七、实验内容二步骤:
malloc.h>
#defineMAX15
#defineTURE1
#defineFALSE0
typedefcharElemType;
typedefstructNode
chardate;
structNode*next;
}Node,*LinkList;
voidInitList(LinkList*L)
*L=(LinkList)malloc(sizeof(char));
(*L)->
next=NULL;
voidPrintfLink(LinkListL)
LinkListp;
p=L->
next;
链表为:
while(p!
=NULL)
%c"
p->
date);
p=p->
voidCreate(LinkListL)
LinkLists,r;
charc;
intflag=1;
intn;
r=L;
元素个数:
n);
if(n>
超出限定长度!
{
输入字符(以#键结束):
while(flag)
%c"
c);
if(c!
='
#'
)
{
s=(Node*)malloc(sizeof(char));
s->
date=c;
r->
next=s;
r=s;
}
else
flag=0;
r->
next=NULL;
voidOrder(LinkListL)
Node*r,*q,*p;
for(r=L->
r->
next!
=NULL;
r=r->
next)
{
p=r;
for(q=r->
q;
q=q->
if((q->
date)<
(p->
date))
p=q;
if(p!
=r)
c=r->
date;
date=p->
p->
}PrintfLink(L);
voidGet(LinkListL,inti,ElemType*e)
intj;
Node*p;
p=L;
j=-1;
while((p->
=NULL)&
(j<
i))
p=p->
j++;
*e=p->
date;
if(i==j)
第%d个元素为:
i,*e);
FALSE"
voidLocate(LinkListL,ElemTypee)
inti=1;
next;
while(p&
p->
date!
=e)
i=i++;
if(!
p)
FALSE\n"
TRUE\n"
该元素在第%d个位置!
i-1);
voidInsList(LinkListL,inti,ElemTypee)
Node*p,*s;
intk=0;
=NULL&
k<
i-1)
k=k++;
}
p)
插入位置不合理!
s=(Node*)malloc(sizeof(char));
s->
date=e;
next=p->
p->
Order(L);
voidDelList(LinkListL,inti,ElemType*e)
Node*p,*r;
j=0;
while((p->
i-1))
j++;
if(p->
=NULL)
p->
next->
r=p->
*e=r->
删除第%d个元素:
%c\n"
删除结点的位置i不合理!
voidListLength(LinkListL)
intj=0;
单链表的长度:
j);
\n1.创建任意字符型单循环链表"
\n2.打印(遍历)该链表"
\n3.查找第i个元素"
\n4.查找与一已知字符相同的元素"
\n5.插入元素"
\n6.删除第i个结点"
\n7.计算链表的长度"
\n8.退出"
LinkListL;
L=(LinkList)malloc(sizeof(char));
InitList(&
L);
\n\n请输入你的选择(1~8):
Create(L);
Order(L);
输入要查找的第i个元素:
Get(L,i,&
输入查找的元素:
rewind(stdin);
Locate(L,e);
输入插入的元素:
输入要删除第几个结点:
ListLength(L);
case8:
八、实验内容二测试数据与实验结果: