#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int Status;
typedef int Elemtype;
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)
return(OVERFLOW);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return OK;
}
Status ListInsert_Sq(SqList&L, int i, Elemtype e) {
Elemtype *newbase,* p, *q;
if (i < 1 || i > L.length + 1)return ERROR;
if (L.length > L.listsize) {
newbase = (Elemtype*) realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof (Elemtype));
if (!newbase)return(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 OK;
}
Status ListDelete_Sq(SqList&L, int i, Elemtype &e) {
int *p, *q;
if (i < 1 || i > L.length + 1)return ERROR;
p = &(L.elem[i - 1]);
e = *p;
q = L.elem + L.length - 1;
for (++p; p <= q; ++p)
*(p - 1) = *p;
--L.length;
return OK;
}
Status ListCreat_Sq(SqList &L) {
int i,x,n;
printf("how many number do you want to scanf?");
scanf("%d",&n);
printf("creat your list now: ");
for (i=1; i<=n; i++)
{
scanf("%d",&x);
ListInsert_Sq(L,i,x);
}
return OK;
}
Status ListLength_sq(SqList &L) {
return( L.length);
}
Status ListPrint_Sq(SqList &L) {
int i;
for (i=0; i <L.length; i++)
printf("%d ", L.elem[i]);
printf("\n");
return OK;
}
int main()
{
SqList L;
int i,j,len,e,f;
if
(!Initlist_Sq(L))printf("init fail.\n") ;
else printf("init success!\n\n");
printf("**************************************\n");
ListCreat_Sq(L);
len=ListLength_sq(L);
printf("your list has %d elem.\n",len);
printf("they are:\n");
ListPrint_Sq(L) ;
printf("**************************************\n");
printf("where do you want to insert?\nputs it:");
scanf("%d",&i);
printf("what item do you want to insert?\nputs it:");
scanf("%d",&e);
ListInsert_Sq(L,i,e);
printf("now your list is:\n");
ListPrint_Sq(L) ;
printf("**************************************\n");
printf("where do you want to delet?\nputs it:");
scanf("%d",&j);
printf("the elem you want to delet is:");
scanf("%d",&f);
ListDelete_Sq(L,j,f);
printf("now your list is:\n");
ListPrint_Sq(L) ;
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
xianxingbiao.zip_L.E.L
共1个文件
cpp:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 99 浏览量
2022-09-24
07:41:41
上传
评论
收藏 1KB ZIP 举报
温馨提示
实现顺序表的基本操作(最终提交“.cpp”) 程序要求: 先给出顺序表的类型定义 给出顺序表的如下基本操作的算法函数定义 构造一个空的线性表:InitList_Sq(SqList &L) 在顺序表L的第i个位置之前插入新的元素e:ListInsert_Sq(SqList &L, int I, ElemType e) 在顺序表L中删除第i个元素,并用e返回其值:ListDelete_Sq(SqList &L, int I, ElemType &e) 实现如下新操作的函数定义: 借助ListInsert_Sq操作创建一个顺序表:ListCreate_Sq(?) 计算线性表的长度:ListLength_Sq(?) 打印顺序表中的所有元素值:ListPrint_Sq(?) 其中?请自行添加适宜的参数表 在主函数中调用上述函数进行测试,给出测试结果截图
资源详情
资源评论
资源推荐
收起资源包目录
xianxingbiao.zip (1个子文件)
xianxingbiao.cpp 3KB
共 1 条
- 1
钱亚锋
- 粉丝: 101
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0