数据结构学习笔记-03-线性表及其实现
线性表的顺序存储实现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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |