线性表的顺序存储实现

    xiaoxiao2021-03-25  136

    #include <stdio.h> typedef struct LNode *List; typedef struct { ElementType Data[MAXSIZE]; int Last; } LNode; //初始化顺序表 List MakeEmpty() { List PtrL; PtrL=(List)malloc(sizeof(LNode)); PtrL->Last=-1; return PtrL; } int Find(ElementType X,List PtrL) { int i=0; while(i<=PtrL->Last&&PtrL->Data[i]!=X) { i++; } if(i>PtrL->Last) return -1; else return i; } void Insert(ElementType X,int p,List PtrL) { int P; int i; if(PtrL->Last==MAXSIZE-1) { printf("表满"); return false; } if(P<0||P>PtrL->Last+1) { printf("位置不合法"); return false; } for(i=PtrL->Last;i>=P;i--) { PtrL->Data[i+1]=PtrL->Data[i]; } PtrL->Data[P]=X; PtrL->Last++; return true; } bool Delete(List PtrL,int P) { int i; if(P<0||P>PtrL->Last) { printf("位置%d不存在元素",P); return false; } for(i=P+1;i<=PtrL->Last;i++) { PtrL->Data[i-1]=PtrL->Data[i]; } PtrL->Last--; return true; } int main(int argc, char *argv[]) { LNode L; List PtrL; } 注意:这个代码实际上不能运行,因为并没有用模板,却使用了诸如ElementType这种类型,实际上这只是个代码框架的示范,在实际实现的时候要使用具体的类型或使用C++的模板,这个代码相当于非常详细的伪代码。
    转载请注明原文地址: https://ju.6miu.com/read-5100.html

    最新回复(0)