顺序表(定长)

来源:互联网 发布:神华低碳研究所 知乎 编辑:程序博客网 时间:2024/06/06 02:58
顺序表,定长的,
//#pragma once //预防头文件重复引用//#define SIZE 10////typedef struct SeqList//{//int elem[SIZE];//存放数据//int length;//有效数字个数//}SeqList,*PSeqList;////void InitSeqList(PSeqList ps);//插入数据必须连续//bool Insert(PSeqList ps,int pos,int val);//bool DeletePos(PSeqList ps,int pos);//int Search(PSeqList ps,int key);//bool Deleteval_r(PSeqList ps,int key);//清除顺序表数据//void Clear(PSeqList ps);//bool IsEmpty(PSeqList ps);//int GetLength(PSeqList ps);//void Destroy(PSeqList ps);//摧毁顺序表//void Show(PSeqList ps);#include <stdio.h>#include <assert.h>#include "seqlist.h"void InitSeqList(PSeqList ps)//初始化{assert(ps != NULL)if(ps == NULL){return ;}ps -> length = 0;}static bool IsFull(PSeqList ps){return ps->length == SIZE;}bool Insert(PSeqlist ps,int pos,int val)//插入数据必须连续{assert(ps != NULL);if(pos < 0 || pos > ps -> length || IsFull(ps)){return false;}for(int i = ps -> length - 1;i >= pos;i --){ps -> elem[i + 1] = ps -> elem[i];}ps -> elem[pos] = val;//插入新数据ps -> length ++;//有效数据个数增加return true;}bool DeletePos(PSeqList ps,int pos);int Search(PSeqList ps,int key){for(int i = 0;i < ps ->length;i++){if(key == ps->elem[i]){return i;}return -1;}bool Deleteval_r(PSeqList ps,int key);void Clear(PSeqList ps){ps -> length = 0;}bool IsEmpty(PSeqList ps){return ps->length == 0;}int GetLength(PSeqList ps);void Destroy(PSeqList ps){Clear(ps);}void Show(PSeqList ps){for(int i=0;ilength;i++){printf("%d ",ps->elem[i]);}printf("\n");}







原创粉丝点击