#include "stdafx.h"
#include
const int MAXSIZE = 10;
typedef struct
{
int *elem;
int length;
int maxsize;
}sqlist;
void initList(sqlist *L)
{
L->elem = (int *)malloc(L->maxsize*sizeof(int));
if (!L->elem) exit(0);
L->length = 0;
L->maxsize = MAXSIZE;
}
//插入第i个位置
void insertElem(sqlist *L,int i,int elem)
{
int *p, *q;
if (i(L->length+1))
exit(0);
if (L->length == L->maxsize)
{
L->elem = (int *)realloc(L->elem, (L->maxsize+5) * sizeof(int));
//if (!L->elem) exit(0);
L->maxsize = L->maxsize + 5;
}
for (p = &L->elem[L->length-1]; p > &L->elem[i-1]; p--)
*(p + 1) = *p;
L->elem[i - 1] = elem;
L->length++;
}
//删除第i个位置的元素
void delElem(sqlist *L,int i)
{
if (iL->length)
exit(0);
for (int *p = &L->elem[i]; p < &L->elem[L->length - 1]; p++)
*(p - 1) = *p;
L->length--;
}
int main()
{
sqlist l;
initList(&l);
for (int i = 0; i < 10; i++)
insertElem(&l, i + 1, i + 1);
cout << "dayin:" << endl;
for (int i = 0; i < 10; i++)
cout << l.elem[i];
delElem(&l,5);
cout << "打印删除后的数据:" << endl;
for (int i = 0; i < l.length; i++)
cout << l.elem[i];
system("pause");
return 0;
}
关于c语言实现动态顺序表的插入删除
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- SGoer 2015-09-20 03:57关注
#include
#include
#includeusing namespace std;
const int MAXSIZE = 10;
typedef struct
{
int *elem;
int length;
int maxsize;
}sqlist;void initList(sqlist *L)
{
L->length = 0;
L->maxsize = MAXSIZE;
L->elem = (int *)malloc(L->maxsize*sizeof(int));
if (!L->elem) exit(0);
}
//插入第i个位置
void insertElem(sqlist *L, int i, int elem)
{
int *p, *q;
if (i > (L->length + 1))
exit(0);
if (L->length == L->maxsize)
{
L->elem = (int *)realloc(L->elem, (L->maxsize + 5) * sizeof(int));
//if (!L->elem) exit(0);
L->maxsize = L->maxsize + 5;
}
for (p = &L->elem[L->length - 1]; p > &L->elem[i - 1]; p--)
*(p + 1) = *p;
L->elem[i - 1] = elem;
L->length++;
}
//删除第i个位置的元素
void delElem(sqlist *L, int i)
{
if (i > L->length)
exit(0);
for (int *p = &L->elem[i]; p < &L->elem[L->length]; p++)
*(p - 1) = *p;
L->length--;
}
int main()
{
sqlist l;
initList(&l);
for (int i = 0; i < 10; i++)
insertElem(&l, i + 1, i + 1);
cout << "dayin:" << endl;
for (int i = 0; i < 10; i++)
cout << l.elem[i] << " ";
delElem(&l, 5);
cout << "打印删除后的数据:" << endl;
for (int i = 0; i < l.length; i++)
cout << l.elem[i] << " ";
system("pause");
return 0;
}解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效