• 静态链表的合并


    typestruct.h

    #define MAX_SIZE 1000

    typedef struct {
    int data;
    int cur;
    }compont,SLinkLIist[MAX_SIZE];

    //初始化一个空的静态链表
    void InitSpace_SL(SLinkLIist S);

    //从空闲节点中取一个节点
    int Malloc_SL(SLinkLIist L);

    //将删除的元素释放保存在空闲节点的第一个位置
    void Free_SL(SLinkLIist L, int k);

    void difference(SLinkLIist L, int *S);

    functionRealize.c

    #include "typeStruct.h"
    #include "stdio.h"
    #include "stdlib.h"
    //初始化一个空的静态链表
    void InitSpace_SL(SLinkLIist S) {

    S[0].cur = 1;//头节点属于元素的节点
    for (int i = 1; i < MAX_SIZE - 1; i++)
    {
    S[i].cur = i + 1;
    }
    S[MAX_SIZE - 1].cur = 0;
    }

    //从空闲节点中取一个节点
    int Malloc_SL(SLinkLIist L) {

    int i = L[0].cur;

    if (L[0].cur) {
    L[0].cur = L[i].cur;
    }
    return i;
    }

    //将删除的元素释放保存在空闲节点的第一个位置
    void Free_SL(SLinkLIist L, int k) {

    L[k].cur = L[0].cur;
    L[0].cur = k;
    }

    void difference(SLinkLIist L) {

    int m,n,i,r,b,p,k,s;

    InitSpace_SL(L);
    //返回开辟空间的下标
    s = Malloc_SL(L);//生成S的头结点
    r = s;//r指向S的当前最后结点

    //输入链表A和链表B中的元素个数

    printf("请输入链表A和链表B元素的个数 ");

    scanf("%d,%d",&m,&n);

    printf("请输入链表A元素的值 ");

    //生成链表A
    for (int j = 1; j <=m; j++)
    {
    i = Malloc_SL(L);
    //输入元素的值
    scanf("%d",&L[i].data);
    L[r].cur = i;
    r = i;

    }

    L[r].cur = 0;

    printf("请输入链表B元素的值 ");

    for (int j =1 ; j <=n; j++)
    {
    scanf("%d",&b);
    p = s;
    k = L[s].cur;
    //判断元素是否存在链表A中
    while (k!=L[r].cur&&L[k].data!=b)
    {
    p = k;
    k = L[k].cur;

    }
    //如果不存在链表LA中则插入链表
    if (k == L[r].cur) {
    i = Malloc_SL(L);
    L[i].data = b;
    L[i].cur = L[r].cur;
    L[r].cur = i;
    }
    else {

    //如果存在链表LA中则删除该元素
    L[p].cur = L[k].cur;
    Free_SL(L,k);
    if (r==k)
    {
    r = p;

    }
    }

    }

    }

    staticLinkListUnion.c

    #include "typeStruct.h"

    void main() {

    SLinkLIist L;
    int S=0;
    difference(L,&S);

    }

  • 相关阅读:
    算法(Algorithms)第4版 练习 1.5.22
    基于RPC原理的dubbo
    java的动态代理机制详解
    xxxx interview
    mysql创建账号
    elasticsearch搜索集群基础架构
    zookeeper可视化管理工具node-zk-browser安装
    kafka监控搭建
    kafka集群安装
    zookeeper集群安装
  • 原文地址:https://www.cnblogs.com/paulversion/p/7570064.html
Copyright © 2020-2023  润新知