数据结构之链表——c

来源:互联网 发布:汽车epc软件下载 编辑:程序博客网 时间:2024/05/01 16:17

1.链表的存储结构

#define ERROR 0#define OK 1typedef int ElemType;typedef struct LNode{    ElemType data;    struct LNode *next;}LNode,LinkList;

2.链表初始化

void InitList_L(LinkList *L){    L->next=NULL;}

3.链表尾部插入一个元素e

int ListInsert_Tail_L(LinkList *L,ElemType e){    LNode *p=L;    while(p->next!=NULL)    {        p=p->next;    }    LNode *q=(LNode *)malloc(sizeof(LNode));    q->data=e;    q->next=NULL;    p->next=q;    return OK;}

4.链表特定位置i插入一个元素e

int ListInsert_i_L(LinkList *L,int i,ElemType e){    LNode *p=L;    int j=0;    while(p&&j<i-1)    {        p=p->next;        j++;    }    if(!p||j>i-1) return ERROR;    LNode *q=(LNode *)malloc(sizeof(LNode));    q->data=e;    q->next=p->next;    p->next=q;    return OK;}

5.输出链表中的元素

void ListPrint_L(LinkList *L){    LNode *p=L->next;    while(p)    {        printf("%d ",p->data);        p=p->next;    }}
原创粉丝点击