线性表输入数据c语言,数据结构线性表基本操作(C语言).docx

数据结构线性表基本操作(C语言)

#include#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefint ElemType;#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedef struct{ElemType *elem;int length;int listsize;}SqList;Status InitList_Sq(SqList *L); //构造空的线性表void DestroyList_Sq(SqList *L); //销毁一个线性表void ClearList_Sq (SqList *L); //将L置为空表Status ListEmpty_Sq (SqList L); //空表返回TRUEStatus ListLength_Sq (SqList L); // 返回元素个数Status GetElem_Sq (SqList L, int i, ElemType *e);//用e返回第i个元素算法2.2中使用Status LocateElem_Sq(SqList L, ElemType e, Status (* compare)(ElemType, ElemType));// 在L中找到一个值与e满足compare()的元素的位序Status PriorElem_Sq(SqList L, ElemType cur_e, ElemType *pre_e);//用pre_e返回cur_e的前驱Status NextElem_Sq(SqList L, ElemType cur_e, ElemType *next_e);//用next_e返回cur_e的后继Status ListInsert_Sq(SqList *L, int i, ElemType e);//在第i位插入新的元素eStatus ListDelete_Sq(SqList *L, int i, ElemType *e);//删除第i个元素用e返回//算法2.3Status InitList_Sq(SqList *L) // 构造空的线性表{L->elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));if (! L->elem){printf("构造失败!\n");exit(OVERFLOW);}L->length = 0;L->listsize = LIST_INIT_SIZE;printf("构造成功!\n");return OK;}void DestroyList_Sq(SqList *L)// 销毁一个线性表{if (L->elem != NULL){free (L->elem);L->elem = NULL;L->length = 0;L->listsize = 0;printf("已销毁线性表!\n");}}void ClearList_Sq (SqList *L)//将L置为空表{if(L->elem != NULL){L->length = 0;printf("已将L置为空表!\n");}}Status ListEmpty_Sq (SqList L)// 空表返回TRUE{if (L.elem != NULL){if (L.length == 0){printf("是空表\n");return TRUE;}else{printf("不是空表\n");return FALSE;}}else{exit(ERROR);}}Status ListLength_Sq (SqList L)// 返回元素个数{if (L.elem != NULL){return L.length;}else{return ERROR;}}Status GetElem_Sq (SqList L, int i, ElemType *e)//用e返回第i个元素算法2.2中使用{if (ListEmpty_Sq(L)){printf("为空表!\n");return ERROR;}if (i < 1 || i > L.length){printf("不存在地%d个位置!\n", i);return ERROR;}*e = L.elem[i - 1];return OK;}//算法2.6Status LocateElem_Sq(SqList L, ElemType e,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值