数据结构C语言版顺序表和单链表的逆置_第1页
数据结构C语言版顺序表和单链表的逆置_第2页
数据结构C语言版顺序表和单链表的逆置_第3页
数据结构C语言版顺序表和单链表的逆置_第4页
免费预览已结束,剩余8页可下载查看

下载本文档

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

文档简介

1、实验 1-1顺序表的逆置操作程序原码#include<stdlib.h>/创建顺序表,确定元素个数,插入各个元素,逆置列表。#include<stdio.h>#include<malloc.h>#define max_list_size 100 / 定义给顺序表分配空间大小typedef structint *elem;int length;list_node;/ 指向顺序表首地址的结构体单元list_node L; / 这里使用了全局变量,在所有的函数里可以随意修改其值int listmax_list_size;void init();/初始化操作void

2、 inversion();/倒置部分void creat();/建表部分void display();/显示部分/*主函数 *int main()init();creat();printf("n 您输入的顺序表的结点数: n");display();inversion();printf("n 倒置顺序表的结点数 : n");display();/*初始化操作分配空间 *void init()L.elem = (int *) malloc (max_list_size * sizeof(int) );if (! L.elem) printf("

3、顺序表已满 ");exit(-1);L.length = 0;/*以下为建表部分 *void creat()int a, b, i;printf(" 请输入顺序表的结点数 : ");scanf("%d", &a);if(a<=0)printf(" 顺序表个数要为正整数 !请重新输入 : ");scanf("%d",&a);if( a > max_list_size - 1 | a < 0 )printf(" 分配失败 ,退出程序 ! n");exit(

4、1);for( i = 0; i != a; +i)printf(" 请输入第 %d 结点的值 : ", i+1);scanf("%d", &b);L.elemi = b;+L.length;/*以下为倒置部分 *void inversion()int a, b, i;a = L.length;for( i = 1; i <= a/2; i+)b = L.elemi-1;L.elemi-1 = L.elema-i;L.elema-i = b;/*以下为显示部分 *void display()inti;for( i = 1; i <=

5、L.length; +i)printf("%dt", L.elemi-1);printf("n");实验 1-1测试结果输入一个正数、输入一个负数、实验 1-2单链表的逆置操作程序原码/ 创建一个单链表,确定元素个数,插入各个元素,进行逆置操作,并输出。#include <stdio.h>#include <malloc.h>#include <stdlib.h>/ 单链表的链式存储结构typedef struct Nodeint date;struct Node *next;LNode,*PLNode;PLNode

6、Creat_Link();/ 创建链表void Treaver_Link(PLNode Head);/ 输出链表void Reaverse_Link(PLNode Head); / 逆置链表void main()PLNode Head;Head=Creat_Link();/ 创建链表printf(" 您输入的单链表为 : n");Treaver_Link(Head);/ 输出链表Reaverse_Link(Head);/ 逆置链表printf(" 逆置后的的单链表为 : n");Treaver_Link(Head);/ 输出链表/*以下为单链表的创建部分

7、*PLNode Creat_Link()int i,t,y;PLNode Head=(PLNode )malloc(sizeof(LNode);PLNode tail;PLNode New;if(!Head)exit(-1);tail=Head;Head->next=NULL;printf(" 请输入链表的个数 : ");scanf("%d",&t);if(t<=0)printf(" 链表个数要为正整数 !请重新输入 : ");scanf("%d",&t);for(i=0;i<t;

8、i+)printf(" 请输入第 %d 个结点数据 : ",i+1);scanf("%d",&y);New=(PLNode )malloc(sizeof(LNode);if(!New)exit(-1);New->date=y;New->next=tail->next;tail->next=New;tail=New;return Head;/*以下为单链表的逆置部分*void Reaverse_Link(PLNode Head)PLNode p,q;p=Head->next;Head->next=NULL;while(p)q=p->next;p->next=Head->next;Head->next=p;p=q;return;/*以下为单链表的显示部分*void Treaver_Link(PLNode Head)PLNode p;if(!Head->next)printf(" 链表为空退出程序 !")

温馨提示

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

评论

0/150

提交评论