数据结构及数据库实验报告00121076张德良电工二Word文档下载推荐.docx
- 文档编号:15953921
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:14
- 大小:76.09KB
数据结构及数据库实验报告00121076张德良电工二Word文档下载推荐.docx
《数据结构及数据库实验报告00121076张德良电工二Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构及数据库实验报告00121076张德良电工二Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
//指向下一个节点的指针
}Node,*pNode;
//函数声明
pNodeCreateList();
//创建链表函数
voidTraverseList(pNode);
//遍历链表函数
boolIs_Empty(pNode);
//判断链表是否为空
intmain()
pNodepHead=NULL;
//定义初始化头节点
structNode*pHead==NULL
intflag;
//存放链表是否为空的标志,
intLen;
pHead=CreateList();
//创建一个非循环单链表,并将该链表的头结点的地址付给pHead
TraverseList(pHead);
//调用遍历链表函数
if(Is_Empty(pHead)==true)//判断列表是否为空
{
return0;
}
}
//创建链表函数
pNodeCreateList()
inti;
intlen;
intval;
pNodepHead=(pNode)malloc(sizeof(Node));
pNodepTail=pHead;
pTail->
pNext=NULL;
printf("
请输入节点个数:
"
);
scanf("
%d"
&
len);
for(i=0;
i<
len;
i++)
第%d个节点的数值:
i+1);
val);
pNodepNew=(pNode)malloc(sizeof(Node));
pNew->
member=val;
pNext=pNew;
pTail=pNew;
returnpHead;
//遍历链表函数
voidTraverseList(pNodepHead)
pNodep=pHead->
pNext;
while(NULL!
=p)
%d"
p->
member);
p=p->
\n"
return;
//判断链表是否为空
boolIs_Empty(pNodepHead)
if(NULL==pHead->
pNext)
printf("
链表为空!
returntrue;
else
returnfalse;
运行结果
输入节点个数及各节点数值如下
2)获取第i个节点的内容
#definemaxsize50
typedefstruct
intdata[maxsize];
intlast;
}Sequenlist;
Sequenlist*InitList()//创建顺序表
Sequenlist*L;
L=(Sequenlist*)malloc(sizeof(Sequenlist));
L->
last=0;
return(L);
Sequenlist*creat()//创建一个有具体内容的顺序表
Sequenlist*L;
inti=1,n;
L=InitList();
printf("
请输入数据,以0结束\n"
scanf("
n);
while(n!
=0&
&
L->
last<
maxsize)
data[i]=n;
i=i++;
last++;
intGetData(Sequenlist*L,inti)//获取第i个元素
if(i>
=1&
=L->
last)
return(L->
data[i]);
else
printf("
参数i不合理!
return0;
voidmain()
intlength,i;
intvalue,number,location;
intj,k;
intflag;
L=creat();
Pleaseinputthelocation\n"
location);
value=GetData(L,location);
Thenumberis%d\n"
value);
运行程序
依次输入链表元素的值,以0结束
输入要查找元素的位置
3)链表删除元素
typedefintElemType;
typedefvoidStatus;
typedefstructNode
{
ElemTypedata;
structNode*next;
LNode,*LinkList;
StatusCreatList(int,LinkList);
StatusTraverse(LinkList);
StatusFreeList(LinkList);
ElemTypeDelElem(LinkList,ElemType);
intLength;
ElemTypee;
LinkListL;
L=(LinkList)malloc(sizeof(LNode));
next=NULL;
InputtheLengthofList:
Length);
CreatList(Length,L);
TraverstheList:
Traverse(L);
while
(1)
{
printf("
请输入要删除的元素:
scanf("
e);
if(DelElem(L,e))//在L中将元素e删除
{
printf("
删除%d后:
e);
break;
}
未找到该元素,删除失败\n"
}
FreeList(L);
ListreleaseSuccess!
StatusCreatList(intLength,LinkListL)
LinkListBody=NULL,p=L;
for(i=0;
i<
Length;
i++)
{
Body=(LinkList)malloc(sizeof(LNode));
p->
next=Body;
Inputthe%dthnum:
(Body->
data));
p=Body;
Body->
StatusFreeList(LinkListL)
LinkListtemp=NULL,p=L;
while(p)
temp=p->
next;
free(p);
p=temp;
StatusTraverse(LinkListL)
LinkListp=L;
p=p->
while(p)//while(p!
=NULL)
data);
p=p->
ElemTypeDelElem(LinkListL,ElemTypee)
LinkListp,q;
q=p=L;
//p指向头结点后第一个元素
while(p)
if(p->
data==e)
{
q->
next=p->
free(p);
return1;
}
else
q=p;
//q始终指向p上一个结点
p=p->
}
}//没有执行上个return,说明没找到
}
运行结果:
输入节点个数
依次输入各个节点的数值
输入要删除的元素
4)链表插入元素。
#defineN5
typedefintelemtype;
elemtypedata;
structnode*next;
}linklist;
linklist*Creatlist(linklist*L){
L=(linklist*)malloc(sizeof(linklist));
returnL;
intJudge(linklist*L){
if(L->
next==NULL)
建表成功...\n"
建表失败.\n"
intInput(linklist*L,intx,linklist*r){
linklist*p;
p=(linklist*)malloc(sizeof(linklist));
p->
data=x;
r->
next=p;
intInsert1(linklist*L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数据库 实验 报告 00121076 张德良 电工
![提示](https://static.bdocx.com/images/bang_tan.gif)