源代码:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define LIST_INIT_SIZE 100 //初始容量
#define LISTINCREMENT 10 //空间增量
typedef struct{
ElemType *elem; //存储空间基址
int length; //表长,元素个数
int listsize; //表容量,空间大小
}SqList;
Status InitList_Sq(SqList &L) {
//构造一个空的线性表L
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)) ;
if(!L.elem) exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}
void Input_Sq(SqList &L) {
//输入数据
int n,i,x;
printf("\nPlease input the SqList's length:");
scanf("%d",&n);
L.length=n;
for(i=0;i<n;i++)
{
printf("Please input %dth elem:",i+1);
scanf("%d",&x);
L.elem[i]=x;
}
}
void Print_Sq(SqList L){
int i,n=L.length;
printf("The list elemt is:\n");
for(i=0;i<n;i++)
printf("%d",L.elem[i]);
}
void Reverse_Sq(SqList &L){
//利用原表空间就地逆置顺序表L
int i,n;
ElemType temp;
n=L.length;
for(i=0;i<n/2;i++){
temp=L.elem[n-1-i];
L.elem[n-1-i]=L.elem[i];
L.elem[i]=temp;
}
}
void main(){
SqList L;
ElemType e;
InitList_Sq(L);
Input_Sq(L);
printf("\nBefore Reverse,");
Print_Sq(L);
printf("\n");
Reverse_Sq( L);
printf("\nAfter Reverse,");
Print_Sq(L);
printf("\n");
}
运行结果:
- 大小: 5.5 KB
分享到:
相关推荐
数据结构中的顺序表就地逆置源代码,亲测可用。
数据结构(Java语言描述) 案例01 顺序表的就地逆置.docx 学习资料 复习资料 教学资源
用链表方式鞋底 一个数据的地址逆置的过程
问题:试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1) 算法思想:观察原表和新表顺序,逆置后的线性表是将原表相应位置的元素进行交换,即交换第一个和...
顺序表就地逆置算法用c语言描述的,数据结构课后习题之一
用c++实现的完整的顺序表的操作,还包括就地逆置算法
设计一个算法,对顺序表实现就地逆置,即利用原表的存储空间将线性表(a1,2,•••,an)逆置为(an,an-1,•••,a1)。
顺序表的就地逆置 可以再电脑上实现的,包括完整的程序设计代码
这个可以应用于顺序表逆置,查找,或者删除,顺序表作为存储结构,实现将线性表(a0,a1,a2,…an-1)就地逆置的操作,所谓“就地”,是指辅助空间应为O(1)。
//表长,元素个数 int listsize; //表容量,空间大小 }SqList; Status InitList_Sq(SqList &L) { //构造一个空的线性表L L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)) ; if(!L.elem) exit(OVERFLOW);...
链表 逆置 C++ 数据结构 作业 ~!!!!!!!!! CPP
数据结构与算法 c++实现 //删除顺序递增表中的重复元素 //对单链表实现就地逆置 //删除递增单链表中的重复元素 适合大二初学数据结构与算法 程序有详细备注 顺序表 单链表
2.22 试写一个算法,实现顺序表的就地逆置,即利用原表存储空间将线性表(a1, a2,…, an)逆置为(an, an-1,, a2 , a1)。 2.38 设有一个双向循环链表,每个结点中除有prior,data和next三个域外,还增设了一个访问...
试分别以不同的存储结构实现线性表的就地逆置法,即在原表的存储空间中将线性表(a1,a2,...,an)逆置为(an,...,a1)。 (1)以顺序表作存储结构,设线性表存储于a[1:arrsize]的前elenum个分量中。 (2)以...
顺序表c语言程序,实现了顺序表算法的程序实现!!
模块划分: 1)void InitList(LinkList *L),初始化链表。 2)void DestroyList(LinkList *L),销毁链表。 3)void ClearList(LinkList...7)void reverse(SqList *L,ElemType a[],int n), 逆置顺序表。 8)main(),主函数。
链表的原地逆置(包括顺序存储方式和链式存储方式)。 本资源包括通过了vs2005的测试可以正常运行。
既然都讲到这里了,咱就先来讨论讨论单链表的两种建立方式————头插法和尾插法利用尾插法建立的单链表数据是顺序的,用头插法建立的单链表数据是逆序的例如:用数列 2