《(数据结构C语言版)顺序表和单链表的逆置.doc》由会员分享,可在线阅读,更多相关《(数据结构C语言版)顺序表和单链表的逆置.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、_实验1-1 顺序表的逆置操作程序原码#include / 创建顺序表,确定元素个数,插入各个元素,逆置列表。#include#include#define max_list_size 100 /定义给顺序表分配空间大小typedef struct int *elem; int length;list_node; /指向顺序表首地址的结构体单元list_node L; /这里使用了全局变量,在所有的函数里可以随意修改其值int listmax_list_size;void init(); / 初始化操作void inversion(); / 倒置部分void creat(); / 建表部分vo
2、id 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(顺序表已满); exit(-1); L.length = 0;/*以下为建表部分* void creat() int a, b
3、, i; printf(请输入顺序表的结点数: );scanf(%d, &a);if(a max_list_size - 1 | a 0 ) printf(分配失败,退出程序! n); exit(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.e
4、lema-i;L.elema-i = b; /*以下为显示部分* void display() int i; for( i = 1; i = L.length; +i) printf(%dt, L.elemi-1); printf(n);实验1-1 测试结果输入一个正数、输入一个负数、实验1-2 单链表的逆置操作程序原码/创建一个单链表,确定元素个数,插入各个元素,进行逆置操作,并输出。#include #include #include / 单链表的链式存储结构typedef struct Nodeint date;struct Node *next;LNode,*PLNode;PLNode
5、 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);/输出链表/*以下为单链表的创建部分*PLNode Creat_Link()int i,
6、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;idate=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(链表为空退出程序!);exit(-1);p=Head-next;while(p)printf(%dt,p-date);p=p-next;printf(n);return;实验1-2 测试结果输入一个正数、输入一个负数、_