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

    因为循环单链表与非循环单链表的区别在于尾结点 的指针域next指向不同,循环单链表指向头结点,非循环单链表置NULL因此我简单写一个初始化顺带插入数据,以及输出数据顺带销毁链表 更多操作与我之前发的链表操作一致

    #include<iostream>
    #include<malloc.h>
    using namespace std;
    typedef int ElemType;
    typedef struct node{
     ElemType data;
     struct node *next;
    } SLink;
    //初始化并且插入数据
    
    
    void initSLink(SLink  *&L,ElemType a[],int l){
    L=(SLink*)malloc(sizeof(SLink));
    SLink *p,*pre;
    //指向自身的循环单链表
    L->next=L;
    pre=L;
    //尾插法
     for(int i=0;i<l;i++){
      //申请空间
       p=(SLink*)malloc(sizeof(SLink));
      //新的结点的指针指向当前尾结点的指针
       p->next=L;
       p->data=a[i];
       pre->next=p;
       pre=p;
     }
    }
    
    //显示并且销毁链表
    
    int disSLink(SLink *&L){
     //首先一个指向
     SLink *pre=L,*p=pre->next;
     if(p==L){
       cout<<"当前链表为空"<<endl;
       return 0;
     }
     while(p!=L){
      cout<<p->data<<" ";
      free(pre);
      pre=p;
      p=pre->next;
     }
    //销毁头结点
    free(L);
    return 1;
    }
    int main(){
    SLink *L;
    ElemType a[5]={1,2,2,1,11};
    initSLink(L,a,5);
    disSLink(L);
    //disSLink(L);
    
    return 0;
    }

  • 相关阅读:
    博客园的Windows Mobile开发专栏
    使大脑迟钝的9种不良习惯
    javascript中实现QueryString的function
    DeviceIoControl实现异步的方法总结
    List of Scientist`s Names
    制版经验谈
    AVRUSB技术探讨(转)
    unexpected WaitForXfer() behavior
    openMP讨论帖
    全角半角SBCDBC
  • 原文地址:https://www.cnblogs.com/webcyh/p/11353100.html
Copyright © 2011-2022 走看看