zoukankan      html  css  js  c++  java
  • 链表

    /* ***********************************************
    Author        :mubaixu
    Created Time  :2015-12-08 20:45:05
    File Name     :线性表顺序存储操作
    ************************************************ */
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #include <windows.h>
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define INFEASIBLE -1
    #define OVERFLOW -2
    #define LIST_INIT_SIZE 100
    #define LISTINCREMENT 10
    #define status int
    #define elemtype int
    typedef struct lnode{
       elemtype date;
       struct lnode *next;
    }node,*linklist;
    
    status get_elem(linklist l,int i,elemtype &e){
        p=l->next;
        elemtype j=1;
        while(p&&j<i){//若j<n,在while循环结束后j==i,指针p指向第i个节点
           p=p->next;
           j++;
        }
        if(!p||j>i)
        return ERROR;
        e=p->date;
        return OK;
    }
    //插入和删除都是需要先便利值第i个位置的前一个节点
    status listinsert(linklist &l,int i,elemtype e){// 在第i个位置插入元素e,其实就是在第i个元素之前插入
       p=l;
       elemtype j=0;
        while(p&&j<i-1){
           p=p->next;
           j++;
        }
       if(!p||j>i-1)
       return ERROR;
       s=(linklist)malloc(sizeof(lnode));
       s->date=e;
       s->next=p->next;
       p->next=s;
       return OK;
    }
    status listdelete(linklist &l,int i,elemtype &e){//删除第i个元素
        p=l;
        j=0;
        while(p->next&&j<i-1){//注意此处的p->next,因为我们删除的下个节点必须不为NULL;
           p=p->next;
           j++;
        }
        if(!p->next||j>i-1)
          return ERROR;
          q=p->next;
          e=q->date;
          p->next=q->next;
          free(p);
          return OK;
    }
    
    void creatlist(linklist &l,int n){//倒序插入值建立链表  page:30
         l=(linklist)malloc(sizeof(lnode));
         l->next=NULL;
         for(int i=n;i>0;i--){
              p=(linklist)malloc(sizeof(lnode));
              scanf("%d",&p->date);
              p->next=l->next;
              l->next=p;
         }
    }
  • 相关阅读:
    自已实现的async 只实现了一部分功能
    async包 ES6 async/await的区别
    网络爬虫基本原理——基于python语言
    推荐一本适合初学者全面自学python的书(附赠电子书)
    用python画小猪票佩奇
    用Python全自动下载抖音视频!
    用python操作PDF文件
    Python爬虫抓取收集考试大纲
    京东商城大规模爬虫的开发
    Python爬虫一步步抓取房产信息
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/5031145.html
Copyright © 2011-2022 走看看