用c语言描述顺序存储结构的线性表求表长的算法
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 21:03:21
用c语言描述顺序存储结构的线性表求表长的算法
#include
#include
#define list_init_size 5
#define listincrement 10
#define overflow -2
typedef int status;
typedef int elemtype;
typedef struct
{
elemtype *elem;
int length;
int listsize;
} sqlist;
status initlist_sq(sqlist &L)
{
L.elem=(elemtype *)malloc(list_init_size * sizeof(elemtype));
if(!L.elem) exit(overflow);
L.length=0;
L.listsize=list_init_size;
return 1;
}
将顺序表初始化为5个元素,在结构中定义了顺序表的长度,int length:所以在主函数中可以直接调用用printf("%d",L.length)就得到了当前的长度,无论是删除,添加,L.length都会随着改变,比如我们建一个添加的函数
status listinsert_sq(sqlist &L,int i ,elemtype e)
{
int * q ,*p ,* newbase;
if(iL.length + 1) return 0;
if(L.length >= L.listsize)
{
newbase=(elemtype *)realloc(L.elem,(L.listsize+listincrement) * sizeof(elemtype));
if(!newbase) exit (overflow);
L.elem=newbase;
L.listsize+=listincrement;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]) ;p>=q ;--p)
*(p+1) = *p;
*q = e;
++L.length;
return 1;
}
如果加一个元素,就会把L.length自动加1,这样避免了再写函数求表长
#include
#define list_init_size 5
#define listincrement 10
#define overflow -2
typedef int status;
typedef int elemtype;
typedef struct
{
elemtype *elem;
int length;
int listsize;
} sqlist;
status initlist_sq(sqlist &L)
{
L.elem=(elemtype *)malloc(list_init_size * sizeof(elemtype));
if(!L.elem) exit(overflow);
L.length=0;
L.listsize=list_init_size;
return 1;
}
将顺序表初始化为5个元素,在结构中定义了顺序表的长度,int length:所以在主函数中可以直接调用用printf("%d",L.length)就得到了当前的长度,无论是删除,添加,L.length都会随着改变,比如我们建一个添加的函数
status listinsert_sq(sqlist &L,int i ,elemtype e)
{
int * q ,*p ,* newbase;
if(iL.length + 1) return 0;
if(L.length >= L.listsize)
{
newbase=(elemtype *)realloc(L.elem,(L.listsize+listincrement) * sizeof(elemtype));
if(!newbase) exit (overflow);
L.elem=newbase;
L.listsize+=listincrement;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]) ;p>=q ;--p)
*(p+1) = *p;
*q = e;
++L.length;
return 1;
}
如果加一个元素,就会把L.length自动加1,这样避免了再写函数求表长
C语言:为什么线性结构的顺序存储是一种随机存取存储结构?
急……写出线性表顺序存储结构的描述
线性表的顺序存储结构和线性表的链式存储结构分别是
线性结构的顺序存取是一种( )存储结构
已知长度为n的线性表A采用顺序存储结构,请写一算法,找出该线性表中值最小的数据元素.
已知长度为n的线性表A采用顺序存储结构,写一时间效率有效的算法,删除数据元素[x,y]之间的所有元素.
建立顺序存储的栈,并对之进行入栈、出栈、取栈顶元素操作的c语言算法
以单链表为存储结构,写一实现线性表就地逆置的算法(用C++写)
已知长度为n的线性表A采用顺序存储结构,请写出一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法可删除线性表中
用c++实现,假设有两个元素递增的有序排列线性表A和B,均以顺序表作存储结构.试编写算法将A表和B表归并成一个按元素值递
数据结构小问题判断题( )1、算法分析的两个主要方面是空间复杂度和时间复杂度。( )2、线性表的链式存储结构优于顺序存储
在顺序存储结构的线性表中插入一个元素,平均需要移动( )个元素