线性表的链式存储实现
通过“链”建立起数据元素之间的逻辑关系。
- 插入、删除不需要移动数据元素,只需要修改“链”。
typedef struct LNode *List;
struct LNode
{
ElementType Data;
List Next;
};
struct LNode L;
List PtrL;
主要操作的实现
1.求表长
int Length(List PtrL)
{
List p=PtrL;
int j=0;
while (p)
{
p=p->Next;
j++;
}
return j;
}
2.查找
(1)按序号查找:FindKth;
List FindKth(int K;List PtrL)
{
List p=PtrL;
int i=1;
while (p!=NULL && i<K)
{
p=p->Next;
i++;
}
if (i==K) return p;
else return NULL;
}
(2)按值查找
List Find(ElementType X,List PtrL)
{
List p=PtrL;
while (p!=NULL && p->Data!=X)
p=p->Next;
return p;
}