欢迎来到天天文库
浏览记录
ID:52908605
大小:157.50 KB
页数:29页
时间:2020-03-31
《计算机软件技术基础实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《计算机软件技术基础》实验报告专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________南华大学计算机学院编29I实验要求1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与
2、失,以达到巩固课堂学习、提高动手能力的目的。实验一线性表【实验目的】1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。3.熟练掌握线性表的综合应用问题。【实验内容】必做:1.一个线性表有n个元素(n3、息。要求:①指定的值x由键盘输入;②程序能处理空链表的情况。选做:3.设有头结点的单链表,编程对表中的作一值只保留一个结点,删除其余值相同的结点。要求:①该算法用函数(非主函数)实现;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。4.已知非空单链表第一个结点由head指出,请写一算法,交换p所指结点与其下一个结点在链表中的位置。要求:①该算法用函数Reverse(head,p)实现,其中head为表头指针,p指向要交换的结点;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。4、要求:①建立一个结点中含有三个域的单链表;②在主函数中调用此算法,构成双向循环链表;③在主函数中利用正向和逆向两种方式输出链表中的数据,验证算法的正确性。【实验报告】实习时间:实习地点:实习机号:29具体实验内容#include#include#defineNULL0#defineLENsizeof(linklist)typedefstructnode{intdata;structnode*next;}linklist;linklist*creat(){inti;linklist*head,*r,5、*q;q=(linklist*)malloc(LEN);head=q;r=q;q->next=NULL;printf("Pleaseinputthenumber:");scanf("%d",&i);while(i!=0){q=(linklist*)malloc(LEN);q->data=i;q->next=NULL;r->next=q;r=r->next;scanf("%d",&i);}returnhead;}voidprint(linklist*head){linklist*p;p=head->next;while(p!=0){6、printf("%d",p->data);p=p->next;}}voiddeletelist(inti,linklist*head){linklist*p,*q;intk=1;p=head;q=p->next;29while((q!=NULL)&&(i!=k)){k++;p=q;q=q->next;}p->next=q->next;}voidinsertlist(inti,intx,linklist*head){intk=0;linklist*p,*q,*p1;p=head;q=p->next;while((q!=NULL)&&7、(knext;}p1=(linklist*)malloc(LEN);p1->data=x;p1->next=p->next;p->next=p1;}voidmain(){intx,i,choice,n;linklist*head;head=creat();printf("Pleaseinputyourchoice:1.print2.delete3.insert4.exit");while(1){printf("Pleaseinputthechoice:");scanf("%d",&choic8、e);switch(choice){case1:print(head);break;case2:printf("Pleaseinputdeletenumbern:");scanf("%d",&n);deletelist(
3、息。要求:①指定的值x由键盘输入;②程序能处理空链表的情况。选做:3.设有头结点的单链表,编程对表中的作一值只保留一个结点,删除其余值相同的结点。要求:①该算法用函数(非主函数)实现;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。4.已知非空单链表第一个结点由head指出,请写一算法,交换p所指结点与其下一个结点在链表中的位置。要求:①该算法用函数Reverse(head,p)实现,其中head为表头指针,p指向要交换的结点;②在主函数中调用创建链表的函数创建一个单链表,并调用该函数,验证算法的正确性。
4、要求:①建立一个结点中含有三个域的单链表;②在主函数中调用此算法,构成双向循环链表;③在主函数中利用正向和逆向两种方式输出链表中的数据,验证算法的正确性。【实验报告】实习时间:实习地点:实习机号:29具体实验内容#include#include#defineNULL0#defineLENsizeof(linklist)typedefstructnode{intdata;structnode*next;}linklist;linklist*creat(){inti;linklist*head,*r,
5、*q;q=(linklist*)malloc(LEN);head=q;r=q;q->next=NULL;printf("Pleaseinputthenumber:");scanf("%d",&i);while(i!=0){q=(linklist*)malloc(LEN);q->data=i;q->next=NULL;r->next=q;r=r->next;scanf("%d",&i);}returnhead;}voidprint(linklist*head){linklist*p;p=head->next;while(p!=0){
6、printf("%d",p->data);p=p->next;}}voiddeletelist(inti,linklist*head){linklist*p,*q;intk=1;p=head;q=p->next;29while((q!=NULL)&&(i!=k)){k++;p=q;q=q->next;}p->next=q->next;}voidinsertlist(inti,intx,linklist*head){intk=0;linklist*p,*q,*p1;p=head;q=p->next;while((q!=NULL)&&
7、(knext;}p1=(linklist*)malloc(LEN);p1->data=x;p1->next=p->next;p->next=p1;}voidmain(){intx,i,choice,n;linklist*head;head=creat();printf("Pleaseinputyourchoice:1.print2.delete3.insert4.exit");while(1){printf("Pleaseinputthechoice:");scanf("%d",&choic
8、e);switch(choice){case1:print(head);break;case2:printf("Pleaseinputdeletenumbern:");scanf("%d",&n);deletelist(
此文档下载收益归作者所有