数据结构之 单链表的基本操作(创建、取值、插入、删除)

来源:互联网 发布:淘宝ashford代购水深 编辑:程序博客网 时间:2024/06/08 14:23

单链表的基本操作,创建、取值、插入、删除结点。

#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedef struct LNode{        int data;        struct LNode* next;}LNode, *Linklist;//-------------------头插法建立单链表--------------------------Linklist CreatList1(Linklist L){    LNode* s;    int x;    L= (Linklist)malloc(sizeof(LNode));    L->next=NULL;    for(x=1;x<=20;x++)    {        s=(LNode*)malloc(sizeof(LNode));        s->data=x;        s->next=L->next;        L->next=s;    }    return L;}//------------------返回第i个位置上的结点元素----------LNode* GetElem(Linklist LL,int i){    LNode* s=LL;    while(i)    {        s=s->next;        i--;    }    return s;}//------------------按值查找结点-----------------------LNode* LocalElem(Linklist LL,int xx){    LNode* s=LL->next;    while(s)    {        if(s->data==xx)            return s;        s=s->next;    }}//--------------------插入结点---------------------void InsertNode(Linklist LL,int i,LNode* ss){    LNode* s=(LNode*)malloc(sizeof(LNode));    s=ss;    LNode* p=LL;    p=GetElem(LL,i-1);    s->next=p->next;    p->next=s;}//------------------删除结点---------------------void DeleteNode(Linklist LL,int i){    LNode* p=LL;    LNode* q=NULL;    p=GetElem(LL,i-1);    q=p->next;    p->next=q->next;    free(q);}void printLinkList(Linklist LL){    LNode* s=LL->next;    int i=1;    do    {        printf("%d ",s->data);        s=s->next;        i++;    }while(s);    printf("\n\n\n");}int main(){//--------------------创建单链表----------------------------------    Linklist LL;    LL=CreatList1(LL);    printLinkList(LL);//--------------------查找值为3的结点-----------------------------    LNode* ss;    ss=LocalElem(LL,3);    printf("查找到值为%d的结点\n",ss->data);    printf("\n\n\n");//-------------在链表第三个位置插入结点sss--------------------    LNode* sss=(LNode*)malloc(sizeof(LNode));    sss->data=0;    sss->next=NULL;    InsertNode(LL,3,sss);    printLinkList(LL);//-------------删除第四个结点------------------------------------    DeleteNode(LL,4);    printLinkList(LL);}

运行结果:
这里写图片描述

阅读全文
0 0