用c语言写一个程序,实现顺序表的初始化,该如何解决
用c语言写一个程序,实现顺序表的初始化
我刚学数据结构,里面有很多的伪代码。请帮忙,写一个能实现顺序表初始化,和顺序表元素的插入的 c语言源程序。
------解决方案--------------------
网上搜搜嘛,很多的
http://wenku.baidu.com/view/aaf16d85e53a580216fcfef4.html
http://download.****.net/tag/%E9%A1%BA%E5%BA%8F%E8%A1%A8/orderbypubdate/107
------解决方案--------------------
[code=C/C++][/code]
#define LIST_INIT_SIZE 100 //线性表存储空间初始分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量
typedef int ElemType;
typedef struct
{
ElemType *elem;//存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}sqlist;
int InitList(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 OK;
}
void ListInsert(sqlist &L,int i,ElemType e)
{
ElemType *newbase;
ElemType *q,*p;
if (i<1 || i>L.length)
return ERROR;//i非法
if (L.length >= L.listsize)//存储空间满了
{
newbase = (ElemType *)realloc(L.elem,(LIST_INIT_SIZE + LISTINCREMENT )* sizeof(ElemType));
if (!newbase)
exit(OVERFLOW);
}
L.elem = newbase;
L.listsize = L.listsize + LISTINCREMENT;
q = &(L.elem[i-1]);//q为插入位置
//插入位置及之后的元素右移
for (p = &(L.elem[L.length -1];p>=q;--p))
{
*(p+1) = *p;
}
*q = e;//插入e
++L.length;//表长增加1
}
//部分算法给你
------解决方案--------------------
tpye a[LEN]={已经初始化的顺序表}//用数组实现
我刚学数据结构,里面有很多的伪代码。请帮忙,写一个能实现顺序表初始化,和顺序表元素的插入的 c语言源程序。
------解决方案--------------------
网上搜搜嘛,很多的
http://wenku.baidu.com/view/aaf16d85e53a580216fcfef4.html
http://download.****.net/tag/%E9%A1%BA%E5%BA%8F%E8%A1%A8/orderbypubdate/107
------解决方案--------------------
[code=C/C++][/code]
#define LIST_INIT_SIZE 100 //线性表存储空间初始分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量
typedef int ElemType;
typedef struct
{
ElemType *elem;//存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}sqlist;
int InitList(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 OK;
}
void ListInsert(sqlist &L,int i,ElemType e)
{
ElemType *newbase;
ElemType *q,*p;
if (i<1 || i>L.length)
return ERROR;//i非法
if (L.length >= L.listsize)//存储空间满了
{
newbase = (ElemType *)realloc(L.elem,(LIST_INIT_SIZE + LISTINCREMENT )* sizeof(ElemType));
if (!newbase)
exit(OVERFLOW);
}
L.elem = newbase;
L.listsize = L.listsize + LISTINCREMENT;
q = &(L.elem[i-1]);//q为插入位置
//插入位置及之后的元素右移
for (p = &(L.elem[L.length -1];p>=q;--p))
{
*(p+1) = *p;
}
*q = e;//插入e
++L.length;//表长增加1
}
//部分算法给你
------解决方案--------------------
tpye a[LEN]={已经初始化的顺序表}//用数组实现