zoukankan      html  css  js  c++  java
  • 循环链表模板

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct lnode{
        int data;
        struct lnode* next;
    } node,*linklist;
    void initlist(linklist &l){
         linklist p=(linklist)malloc(sizeof(node));
         p->next=p;//此处可以控制循环链表
         l=p;
    }
    void InsertFront(linklist &l,int e){//从表头插入元素
        linklist p;
        p=(linklist)malloc(sizeof(node));
        p->data=e;
        p->next=l->next;
        l->next=p;
    }
    void InsertEnd(linklist &l,int e){//从末尾插入元素
        linklist p,q;
        p=(linklist)malloc(sizeof(node));
        p->data=e;
        q=l;
        while(q->next!=l){//此处判断扫到末尾的条件为!=l
            q=q->next;
        }
        p->next=q->next;
        q->next=p;
    }
    void Print(linklist l){
        linklist p;
        p=l->next;
        while(p!=l){
            printf("%d ",p->data);
            p=p->next;
        }
        printf("
    ");
    }
    void DeleteFront(linklist &l,int &val){//删除表前面的元素
        linklist p;
        p=l->next;
        if(p!=l){//判断是不是空表
            l->next=p->next;
            val=p->data;
            free(p);
        }
        else
            printf("LinkList is empty!/n");
    }
    void DeleteEnd(linklist &l,int &val){//删除表后面的元素
        linklist p,q;//q为p的前驱节点
        q=l;
        p=l->next;
        if(p!=l){//判断表是否为空
            while(p->next!=l){
                q=p;
                p=p->next;
            }
            val=p->data;
            q->next=p->next;
        }
        else
            printf("LinkList is empty!/n");
    }
    int main(){
        linklist l;
        int i,res;
        initlist(l);
        for(i=1; i<=8; i++){
            InsertFront(l,i+38);
            InsertEnd(l,i+100);
        }
        Print(l);//输出表的元素
        DeleteFront(l,res);
        DeleteEnd(l,res);
        Print(l);
        return 0;
    }
  • 相关阅读:
    MAC OS系统替换homebrew使用阿里云的镜像源
    Javascript 交换两个变量的值
    Vue 中的 ref $refs
    Bluetooth M590 mouse problem Ubuntu
    Ubuntu 蓝牙鼠标的问题
    视频分享
    Vue项目中的文件/文件夹命名规范
    js打印div指定区域内容
    IntelliJ IDEA 配置
    idea安装
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/5034200.html
Copyright © 2011-2022 走看看