数据结构学习笔记

来源:互联网 发布:linux php posix扩展 编辑:程序博客网 时间:2024/06/01 18:46

数据结构学习笔记之②——线性表

定义:零个或多个数据元素的有限序列。

线性表的顺序存储结构及基本操作

#define MAXSIZE 20typedef int ElemType;typedef int Status;//用于返回操作状态//@线性表顺序存储typedef struct{    ElemType data[MAXSIZE];    int length;}SqList;Status GetElem(SqList L,int i,ElemType *e)//获取元素值{    if(L.length==0||i<1||i>L.length)        return 0;    *e=L.data[i-1];    return 1;}Status ListInsert(SqList *L,int i,ElemType e)//插结点{    int k ;    if (L->length==MAXSIZE)        return 0;    if (i<1||i>L->length+1)        return 0;    if(i<=L->length)    {        for(k=L->length-1;k>=i-1;k--)            L->data[k+1]=L->data[k];    }    L->data[i-1]=e;    L->length++;    return 1;}Status ListDelete(SqList *L,int i,ElemType *e)//删结点{    int k;    if (L->length==0)        return 0;    if(i<1 || i>L->length)        return 0;    *e=L->data[i-1];//用e返回要删除的节点值    if(i<L->length)    {        for(k=i;k<L->length;k++)            L->data[k-1]=L->data[k];    }    L->length--;    return 1;}

线性表的链式存储结构及基本操作

#define MAXSIZE 20typedef int ElemType;typedef int Status;//用于返回操作状态//@ 线性表链式存储typedef struct Node{    ElemType data;    struct Node *next;}Node;typedef struct Node *LinkList;Status GetElem(LinkList L,int i,ElemType *e){    int j;    LinkList p;    p=L->next;    j=1;    while(p&&j<i)    {        p=p->next;        ++j;    }    if(!p||j>i)        return 0;    *e=p->data;    return 1;}Status ListInsert(LinkList *L,int i,ElemType e){    int j;    LinkList p,s;    p=*L;    j=1;    while(p&&j<i)    {        p=p->next;        ++j;    }    if(!p||j<i)        return 0;    s=(LinkList)malloc (sizeof(Node));    s->data=e;    s->next=p->next;    p->next=s;    return 1;}Status ListDelete(LinkList *L,int i,ElemType *e){    int j;    LinkList p,q;    p=*L;    j=1;    while (p->next&&j<i)    {        p=p->next;        ++j;    }    if(!(p->next)||j>i)        return 0;    q=p->next;    //***此处先 q=p->next,再让 p->next=q->next,而不是直接让p->next=p->next->next,是为了之后可以释放删除点的内存***    p->next=q->next;    *e=q->data;    free(q);    return 1;}
0 0
原创粉丝点击