1、
(数据结构C语言版)顺序表和单链表的逆置
精品文档
实验1-1 顺序表的逆置操作
程序原码
#include
2、全局变量,在所有的函数里可以随意修改其值 int list[max_list_size]; void init(); // 初始化操作 void inversion(); // 倒置部分 void creat(); // 建表部分 void display(); // 显示部分 //*************主函数****************** int main() { init(); creat(); printf("\n您输入的顺序表的结点数: \
3、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
4、 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(1);
5、 } for( i = 0; i != a; ++i) { printf("请输入第%d结点的值: ", i+1); scanf("%d", &b); L.elem[i] = b; ++L.length; } } //****************以下为倒置部分********************** void inversion(){ int a, b, i; a = L.length; for( i = 1; i <=
6、a/2; i++) { b = L.elem[i-1]; L.elem[i-1] = L.elem[a-i]; L.elem[a-i] = b; } } //****************以下为显示部分********************** void display(){ int i; for( i = 1; i <= L.length; ++i) printf("%d\t", L.elem[i-1]); printf("\n"); } 实验1-1 测试结果 输入
7、一个正数、
输入一个负数、
实验1-2 单链表的逆置操作
程序原码
//创建一个单链表,确定元素个数,插入各个元素,进行逆置操作,并输出。
#include
8、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(He
9、ad); //输出链表 } //************以下为单链表的创建部分************** 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){
10、 printf("链表个数要为正整数!请重新输入: ");
scanf("%d",&t);
}
for(i=0;i
11、/************以下为单链表的逆置部分************** 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("%d\t",p->date); p=p->next; } printf("\n"); return; } 实验1-2 测试结果 输入一个正数、 输入一个负数、 收集于网络,如有侵权请联系管理员删除






