c语言处理顺序表的就地逆置
掌握数据结构是编写出地道、复杂程序的基础。很难想象一个不懂数据结构的人,或是不够精通数据结构的人会是一个出色的程序员。因此多用数据结构的知识编写一些程序对培养人们的编程水平以及用计算机处理复杂问题的能力都大有裨益。本章将通过一些具体的实例介绍数据结构在程序设计中的应用。
题目要求:
编写一个函数,实现顺序表的就地逆置,也就是说利用原表的存储空间将顺序表(a1,a2,an)逆置为(an,an1,a1)。
题目分析:
本题主要考查顺序表线性结构的应用。顺序表的基本操作包括顺序表的创建,插入数据,删除数据等。但是在实际的应用中,对顺序表的操作并不仅限于上述这几种操作。因此学习顺序表也不能仅限于学懂前面所讲的几种操作而已,应当灵活掌握顺序表结构,并能够熟练地操纵顺序表。includestdio。hdefineMAXSIZE10静态顺序表的最大空间typedefstruct{intbase;intlength;}sqlist;定义一个顺序表类型reverseSQ(sqlistl){实现顺序表l的就地逆置intlow0,highllength1;low和high分别指向顺序表的首尾intbuf,i;for(i0;illength2;i){循环length2次,实现数据逆置buflbase〔low〕;lbase〔low〕lbase〔high〕;lbase〔high〕buf;low;high;}}main(){sqlistl;inta,i0;创建一个顺序表l。base(int)malloc(sizeof(int)MAXSIZE);l。length0;输入数据printf(Pleaseinputbelow10integerintothesqlist);printf(Type1forstoppinginput);scanf(d,a);while(a!1i9){l。base〔i〕a;l。length;i;if(i10){scanf(d,a);}}输出原顺序表中的数据printf(Thecontentsofthesqlistare);for(i0;il。length;i)printf(d,l。base〔i〕);printf();reverseSQ(l);就地逆置顺序表输出逆置后的顺序表中的数据printf(Thecontentsofthereversedsqlistare);for(i0;il。length;i)printf(d,l。base〔i〕);getche();}
运行结果:
运行结果