用c语言写一个程序,实现顺序表的初始化

m2453755227 2012-03-15 08:42:47
我刚学数据结构,里面有很多的伪代码。请帮忙,写一个能实现顺序表初始化,和顺序表元素的插入的 c语言源程序。
...全文
903 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
m2453755227 2012-03-21
  • 打赏
  • 举报
回复
谢谢楼主
m2453755227 2012-03-21
  • 打赏
  • 举报
回复
谢谢楼主。不过,我还要琢磨一下。如果,能提供一个顺序表元素已经具体化,完整的c语言程序,就更好啦!
woniu_521 2012-03-21
  • 打赏
  • 举报
回复
数组实现啊
woniu_521 2012-03-21
  • 打赏
  • 举报
回复
tpye a[LEN]={已经初始化的顺序表}//用数组实现
老鼠期待爱 2012-03-19
  • 打赏
  • 举报
回复

#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
}
//部分算法给你

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧