基础的结构,不适合进阶版学习💕❤🤞
线性表
单链表
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
Status InitLinkList(LinkList &H){
LinkList head;
head = (LinkList)malloc(sizeof(LNode));
head->next = NULL;
}
void Print_LinkList(LinkList &H){
LNode *p;
p = H->next;
while(p!= NULL){
printf("%d", p->data);
p = p->next;
}
}
LinkList locate_LinkList(LinkList H, char key[]){
LinkList p = H->next;
while(p != NULL){
if(strcmp(p->data.name, key) == 0){
return p;
}
p = p->next;
}
return NULL;
}
Status ListInsert(LinkList &H, int i, ElemType e){
LinkList p = H->next;
for(int j = 2; j < i; j++){
p = p->next;
}
LinkList q = new LNode;
q->data = e;
q->next = p->next;
p->next = q;
return OK;
}
顺序表
int ListInsert(SqList &L, int i, ElemType e){
if(L.length + 1 < i || i < 1 || L.length >= 100){
return ERROR;
}
for(int j = L.length; j >= i; j--){
L.elem[j] = L.elem[j-1];
}
L.elem[i-1] = e;
L.length++;
return OK;
}
int ListDelete(SqList &L, int i){
if(L.length < i || i <= 0){
return ERROR;
}
for (int j = i; j < L.length; j++){
L.elem[j] = L.elem[j+1];
}
L.length--;
return OK;
}