付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单链表的基本操作
1.实验目的:
(1)掌握使用C集成环境调试单链表的基本方法;
(2)单链表的基本操作:插入、删除、查找等运算,
2.仪器和软件环境:
安装C/C++集成环境的计算机。
3.问题描述和要求:
(1)问题描述:
输入一组整型数(以/结束输入),建立单链表,并对其进行查找,插入,
删除等基本操作。
(2)要求:
①定义问题的单链表
一个数据域、一个指针域。结构体
②建立单链表(输入数据以T结束输入)
头插法(头结点的后面插入)
尾插法(刚插入,最后一节点)
③求单链表长度
设置一个遍历指针,开始指向第一个节点
计数器
判断到尾?
④查找第i个结点,求其数据域
⑤在第i个位置插入元素e
©删除第i个结点,并释放空间
⑦以上个操作后,要输出单链表,以便比较.
设置一个遍历指针,开始指向第一个节点
输出语句
判断到尾?
⑧写出主函数,完成以上操作
4.实验步骤和代码:
#include<s(dio.h>
#include<malloc.h>
typedefstructnode{
intdata;
structnode*ncxt;
}NODE;
/*建立单链表*/
NODE"Create。{
NODE*p,*head;
intx;
heiid=(NODE*)malloc(sizeof(NODE));
head->nexl=NULL:
prinlfC'Inpuldata,/toEnd!\n");
scanf("%d".&x);
whilc(x!="1){
p=(NODE*)malloc(sizcof(NODE));
p->da(a=x;
p->next=head->next;
head->next=p;
scanf("%d",&x);
)
return(head);
}
思考:如何该单链表逆置?
voidrcverse(NODE*L)
(
p=L->next;
L->ncxt=NULL;
while(p)
{
q=p->ncxt;
p->next=L->next;
L->next=p;
p二q:
/*输出单链表*/
voidOutput(NODE*head){
NODE*p;
p=hcad;
printf("Bcgintodump(heNcxlLisi..An");
while(p->ncx(!=NULL){
printf("->%d",p->next->data);
p=p->next;
printf("\nTheNextListended!\n");
产单链表求长度*/
intListlen(NODE*head){
inti=0;
NODE*p=head;
while(p->ncxt!=NULLj{
i十十;if(p->ncxi->da(a==x)i十十
p=p->ncx(;
}
return(i);
]
思考:求值为x的结点?如何改动?
/*查找第i个结点*/
intGet(NODE*head,inti)|
intj=O;
NODE*p=head;
while(p->next&&j<i){
j++;
p=p->next;
)
if(!p->ncxt||j>i)rcium(O);
elsercturn(p->data):
}
产在第i个位置插入元素e*/
voidIns(NODE*head,inti,inte){
NODE*p=head,*q;
intj=O;
while(p->next<&&j<i-l){
j++;
p=p->next;
)
if(!p->next&&j>i-l)printf("Wrongposilion\n");
clse{
q=(NODE*)malloc(sizeof(NODE));
q->da(a=e;
q->next=p->next;
p->next=q;
)
)
思考:在单链表的表尾插入某结点s
voidinsert(NODE*L,intx)
(
p=L;
whilc(p->ncxt)
p=p->next;
s=(NextList)malloc(sizeof(Node));
s->ncxt=NULL;
p->next=s;
)
/*删除第i个结点*/
voidDcRNODE*head,int:){
NODE*p=hcad;
in(j=0:
while(p->next&&j<i-1){
j++;
p=p->next;
)
if(!p->next||j>i-l)printf("thepositioniswrong\n");
else
p->next=p->next->next;思考:释放节点如何修改?
)
/*主函数*/
main(){
NODE*head;
intlength:
inti,clcmcnt;
hcad=Crcate();
Output(head);
length=IJstleiVhead):
printf("thelengthofthenextis%d\n”,length);
printf("inputtheorder:\n");
scanf("%d",&i);
element=Get(head,i);
printf("theelementoftheorderis%d\n",element);
printf("Inputtheinsertposionandelement:\n");
scanf("%d%d",&i,&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年惊险旅途模拟题及答案详解
- 四川2025行测模拟题及答案详解
- 江苏公务员考试行测(言语理解与表达)模拟题及答案详解
- 2026年金融监管学模拟题及答案详解
- 汉语言专科中国古代文学(B)期末考试模拟题及答案详解
- 自考学前特殊儿童教育0883历年模拟题及答案详解
- 2027届云南省麻栗坡县一中高一物理第一学期期中统考模拟试题含解析
- 2027届安徽省淮南市第一中学创新班物理高三上期中学业质量监测模拟试题含解析
- 2027届山东省新泰第一中学物理高二上期中质量检测模拟试题含解析
- 山东省菏泽市第一中学八一路校区2027届物理高三上期中达标检测试题含解析
- 2026年安庆岳西县公开选聘县属国有企业领导人员考试备考试题及答案详解
- 2026年社会保险法社保经办人员刷题题库及答案
- 部编版道法新教材四年级年级上册第2课-选举班委会-第2课时
- 全国OPC发展观察报告2026
- 旋喷桩施工安全培训
- 2026年麻醉药品精神药品管理课件
- 高一数学教材同步知识点专题详解(苏教版必修第一册)3.2基本不等式(原卷版+解析)
- GB/T 42167-2022服装用皮革
- 人卫慕课《走进肺功能》试题答案
- 执业兽医机构聘用证明或服务协议
- 手术室护理查房人工膝关节置换术课件
评论
0/150
提交评论