1.建立空的链表(初始化)
1 List MakeEmpty(){ 2 List PtrL; 3 PtrL = (List)malloc(sizeof(struct LNode)); 4 PtrL->Last = -1; //Last为0表示有一个元素放在第一个位置 5 return PtrL; //把结构的指针返回 6 } //创建并返回一个空的线性表;
2.查找(find)
1 int Find( List L, ElementType X ){ 2 int i = 0; 3 while (i <= PtrL->Last && PtrL->Data[i] != X){ 4 i++; 5 } 6 if (i >PtrL->Last) return -1; 7 else return i; //找到后返回储存位置 8 }
3.插入(在第i个位置插入值为X的元素)
先移动,再插入。
从后往前挪动。
void Insert( List L, ElementType X, int i){ int j; if (PtrL->Last == MAXSIZE-1) printf("表满"); return 0; if (i<1 || PtrL->Last+2) printf("位置不合法"); teturn 0; for (j=PtrL->Last; j>=i-1; j--) PtrL->Data[j+1] = PtrL->Data[j]; PtrL->Data[i-1] = X; //新元素插入 PtrL->Last++; //Last仍指向最后元素 reutrn 0; }
4.删除(删除表的第i个位置上的元素)
把i之后的元素往前挪
void Delete( List L, int i ){ int j; if (i<1 || i>PtrL->Last+1) printf("不存在第%d个元素", i); return 0; for (j=i; j<=PtrL->Last; j++) PtrL->Data[j-1] = PtrL->Data[j]; PtrL->Last--; //Last仍指向最后元素 return 0; }
原文:https://www.cnblogs.com/zhengxin909/p/12451592.html