数据结构C语言版顺序表和单链表的逆置,_第1页
数据结构C语言版顺序表和单链表的逆置,_第2页
数据结构C语言版顺序表和单链表的逆置,_第3页
数据结构C语言版顺序表和单链表的逆置,_第4页
数据结构C语言版顺序表和单链表的逆置,_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验1-1顺序表的逆置操作程序原码#i nclude<stdlib.h>#in clude<stdio.h>创建顺序表,确定元素个数,插入各个元素,逆置列表。#i nclude<malloc.h>#defi nemax_list_size100定义给顺序表分配空间大小typedefstructin t*elem;in tle ngth; list_node; list_ no deL;指向顺序表首地址的结构体单元这里使用了全局变量,在所有的函数里可以随意修改其值in tlistmax_list_size;voidi nit();初始化操作voidi nver

2、sio n();倒置部分voidcreat(); voiddisplay();*建表部分显示部分主函数 *in tma in() ini t(); creat(); prin tf("n您输入的顺序表的结点数:n");display();inv ersio n();printf("n倒置顺序表的结点数:n");display();初始化操作分配空间*voidi nit() L.elem=(i nt*)malloc(max_list_size*sizeof(i nt); if(!L.elem)printf("顺序表已满");exit(-

3、1);L.le ngth=0;以下为建表部分*voidcreat()in ta,b,i;printf("请输入顺序表的结点数:"); sca nf("%d",&a);if(a<=0)仅供个人学习参考printf("顺序表个数要为正整数!请重新输入:");scan f("%d",&a);if(a>max_list_size-1|a<0)printf(" 分配失败,退出程序!n");exit(1);for(i=0;i!=a;+i)printf("请输入第&

4、#163;结点的值:",i+1);scan f("%d",&b);L.elemi=b;+L .len gth;以下为倒置部分*voidi nv ersi on() in ta,b,i;a=L .len gth;for(i=1;i<=a/2;i+)b=L.elemi-1;L.elemi-1=L.elema-i;L.elema-i=b;以下为显示部分*voiddisplay()I 'lin ti;for(i=1;i<=Len gth;+i)prin tf("%dt",L.elemi-1); prin tf("n

5、");实验1-1测试结果 输入一个正数、 输入一个负数、实验1-2单链表的逆置操作程序原码/创建一个单链表,确定元素个数,插入各个元素,进行逆置操作,并输出#in clude<stdio.h>#i nclude<malloc.h>#i nclude<stdlib.h>/单链表的链式存储结构typedefstructNode仅供个人学习参考in tdate;structNode* next;LNode,*PLNode;PLNodeCreat_Li nk(); 创建链表 voidTreaver_Li nk(PLNodeHead);/输出链表voidRe

6、averse_Li nk(PLNodeHead);/ 逆置链表 voidmai n() PLNodeHead;Head=Creat_Li nk(); 创建链表 printf("您输入的单链表为:n");Treaver_Link(Head);/ 输出链表Reaverse_Link(Head);/ 逆置链表printf("逆置后的的单链表为:n");Treaver_Link(Head);/ 输出链表以下为单链表的创建部分 *PLNodeCreat_Li nk() _in ti,t,y;PLNodeHead=(PLNode)malloc(sizeof(LNod

7、e); PLNodetail;LPLNodeNew;if(!Head)exit(-1); tail=Head;Head-> next=NULL;printf("请输入链表的个数:");sca nf("%d", &t);if(t<=0)printf("链表个数要为正整数!请重新输入:");sca nf("%d", &t);for(i=O;i<t;i+)printf("请输入第d个结点数据:",i+1);sca nf("%d", &y);

8、 New=(PLNode)malloc(sizeof(LNode); if(!New)exit(-1);New->date=y;New- >n ext=tail->n ext;tail->n ext=New;tail=New;仅供个人学习参考 retur nH ead;*以下为单链表的逆置部分voidReaverse_Li nk(PLNodeHead) _PLNodep,q; p=Head->n ext; Head-> next=NULL;while(p)q=p->n ext; p->n ext=Head->n ext; Head->n ext=p;p=q; return;*以下为单链表的显示部分voidTreaver_Li nk(PLNodeHead) _PLNodep;if(!Head-> next) printf("链表为空退出程序!");exit(-1);p=Head->n ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论