什么单链表的逆置 问题描述 设计一个程序,实现单链表的逆置
一、需求分析 ⑴按程序提示输入并创建一个单链表,带有头结点 ⑵可自定义链表的长度,可自定义链表储存的数据类型,注意更改相应的输入输出方式 ⑶实现单链表的逆置,直观地输出结果 二、概要设计 为实现上述程序功能,需创建以下抽象数据类型: ADT LinkList { 数据对象:D={ai|ai∈(0,1,…,9),i=0,1,2,…,n,n≥0} 数据关系:R={|ai-1,ai∈D,i=1,2,…,n} 基本操作: InitList(&L) 操作结果:初始化一个链表L
CreatList(L,L_Length) 初始条件:链表L 已存在
操作结果:创建一个长度为L_Length 的单链表
InverseList(L) 初始条件:链表L 已存在
操作结果:将单链表逆置
DisplayList(L) 初始条件:链表L 已存在
操作结果:销毁链表L
} ADT LinkList 本程序包含四个模块,即 1) 主程序模块,接受命令 2) 初始化及链表创建模块,按要求创建链表 3) 单链表逆置模块,实现单链表的逆置 4) 显示模块,输出结果 三、详细设计(C语句,而非伪码) 1
元素类型、节点类型和指针类型的定义 typedef int Status;//函数状态类型 typedef int ElemType;//元素类型 typedef struct node{ ElemType data; struct node *next; }Node,*LinkList;//节点类型、 2
基本操作和所需调用的函数 //初始化一个链表 Status InitList(LinkList *L) { *L=(LinkList)malloc(sizeof(node)); if(
(*L)) exit(-2);//内存分配