线性表的顺序存储实现
typedef struct LNode *List;
struct LNode
{
ElementType Data[MAXSIZE];
int Last;
};
struct LNode L;
List Ptrl;
初始化:
List MakeEmpty()
{
List PtrL;
PtrL = (List )malloc(sizeof(struct 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 i,List PtrL)
{
int i;
if(PtrL->Last == MAXSIZE-1)
{
printf("表满");
return;
}
if (i<1||i>PtrL->Last+2)
{
printf("位置不合法");
return;
}
for (j=PtrL->Last;j>=i-1;j--)
PtrL->Data[j+1]=PtrL->Data[j];
PtrL->Data[i-1]=X;
PtrL->Last++;
return;
}
删除节点:
voID Delete(int i,List PtrL)
{
int j;
if (i<1||i>PtrL->Last+1)
{
printf("不存在第%d个元素",i);
return;
}
for (j=i;j<=PtrL->Last;j++)
PtrL->Data[j-1] = PtrL->Data[j];
PtrL->Last--;
return;
}
线性表的链式存储实现
typedef struct LNode *List;
struct LNode
{
ElementType Data;
List Next;
};
struct LNode L;
List PtrL;
求表长:
int Length(List PtrL)
{
List p = PtrL;
int j = 0;
while(p)
{
p=p->Next;
j++;
}
return j;
}
按序号查找:
List FindKth(int K,List PtrL)
{
List p = PtrL;
int i = 1;
while(p!=NulL&&i { p = p->Next; i++; } if (i==K) return p; else return NulL; } 按元素值查找: List Find(ElementType X,List PtrL) { List p=PtrL; while(p!=NulL && p->Data!=X) p=p->Next; return p; } 插入节点: List Insert(List PtrL,int k,ElementType X)//插入元素 { List p,s; if (k==1) { s=(List)malloc(sizeof(struct LNode)); s->Data=X; s->Next=PtrL; return s; } p=FindKth(k,PtrL) if (p==NulL) { printf("参数k出错"); return NulL; } else { s=(List)malloc(sizeof(struct LNode)); s->Data=X; s->Next=p->Next; p->Next=s; return PtrL; } } 删除节点: List Delete(int k,List PtrL)//删除节点 { List p,s; if (k==1) { s=PtrL; if (PtrL!=NulL) PtrL=PtrL->next; else return NulL; free(s); return PtrL; } p=FindKth(k-1,List) if (p==NulL) { printf("第%d个节点不存在",k-1); return NulL; } if (p->Next==NulL) { printf("第%d个节点不存在",k); return NulL; } else { s=p->Next; p-Next=s->Next; free(s); return PtrL; } } 以上是内存溢出为你收集整理的数据结构学习笔记-03-线性表及其实现全部内容,希望文章能够帮你解决数据结构学习笔记-03-线性表及其实现所遇到的程序开发问题。 如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)