栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现数据结构链表的简单操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现数据结构链表的简单操作

#define _CRT_SECURE_NO_WARNINGS
#include
#include
typedef struct LNode {
    int data;
    struct LNode* next;
}LNode;
LNode* LNode_Init(LNode* L) {
    L->next = NULL;
    return L;
}
LNode* Head_Insert(LNode* L)
{
    LNode* s; int x;
    x=scanf("%d", &x);
    while (x != 9999) {
        s = (LNode*)malloc(sizeof(LNode));
        s->data = x;
        s->next = L->next;
        L->next = s;
        scanf("%d", &x);
    }
    return L;
}
void LNode_Print(LNode* L)
{
    LNode* s;
    s = L->next;
    while (s) {
        printf("%dn", s->data);
        s = s->next;
    }
}
LNode* Get_LNode(LNode* L,int n) {
    int i = 1;
    if (n == 0)
        return L;
    if (n < 0)
        return NULL;
    LNode* p = (LNode*)malloc(sizeof(LNode));
    p = L->next;
    while (p&&i
        p = p->next;
        i++;
    }
    return p;
}
LNode* Del_LNode(LNode* L,int n ) {
    LNode* p,*q;
    p = (LNode*)malloc(sizeof(LNode));
    q = (LNode*)malloc(sizeof(LNode));
    p=Get_LNode(L, n-1);
    q = p->next;
    p->next = q->next;
    free(q);
    return L;
}
LNode* LNode_Insert(LNode*L, int n,int data) {
    LNode* q, * p;
    p = (LNode*)malloc(sizeof(LNode));
    q = (LNode*)malloc(sizeof(LNode));
    p = Get_LNode(L, n - 1);
    q->data = data;
    q->next = p->next;
    p->next = q;
    return L;

}
int main()
{
    LNode *L;
    L = (LNode*)malloc(sizeof(LNode));
    L=LNode_Init(L);
    L=Head_Insert(L);
    LNode_Print(L);
    printf("n%dnn", Get_LNode(L,3)->data);
    L = Del_LNode(L, 3);
    LNode_Print(L);
    L = LNode_Insert(L, 4, 5);
    printf("nn");
    LNode_Print(L);
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026791.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号