数据结构 doc.doc
文本预览下载声明
数据结构
系别:计科系
班级:计算机应用技术11_1班
姓名:杨丽
一:问题描述
编写算法实现顺序表的逆置,即利用原表的存储空间将线性表 (a1,a2,……,an)逆置为(an,……,a2,a1)
二:程序设计的基本思想,
线性表的本地逆序可以用第一个元素和最末元素对调,第二个元素与倒数第二个元素对调....关键是要已知顺序表的长度(即元素总个数)和控制对调操作的结束条件(考虑奇数个元素和偶数个元素的时候停止对调操作的条件).在写程序的时候线性表可以用一维数组代替.#include stdio.h
#include stdlib.h
typedef struct List
{
int data;
struct List *next;
}List;
void HeadCreatList (List *L)
{
List *s;
L-next=NULL;
for (int i=0;i10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s-data=i;
s-next=L-next;
L-next=s;
}
}
void TailCreatList(List *L)
{
List *s,*r;
r=L;
for (int i=0;i10;i++)
{
s=(struct List*)malloc(sizeof(struct List));
s-data=i;
r-next=s;
r=s;
}
r-next=NULL;
}
void DisPlay(List *L)
{
List *p=L-next;
while(p!=NULL)
{
printf (%d ,p-data);
p=p-next;
}
printf(\n);
}
int main ()
{
List *L1,*L2;
L1=(struct List*)malloc(sizeof(struct List))
L2=(struct List*)malloc(sizeof(struct List));
HeadCreatList(L1);
DisPlay(L1);
TailCreatList(L2);
DisPlay(L2);
}
四:输出结果
五:分析
本次作业要求较低并无太大的困难,问题基本能过解决。
显示全部