zoukankan      html  css  js  c++  java
  • 链表

    头指针:

    1. 头指针是指向链表第一个结点的指针。
    2. 无论链表是否为空,头指针均不为空。
    3. 头指针是链表的必要元素。
    4. 若链表有头结点,则头指针就是指向头结点的指针。

    头结点:

    1. 放在第一个结点之前,其数据域一般无意义(用来存放链表的长度)
    2. 头结点不是链表的必要元素。

    typedef struct Node{
        ElemType data;       //数据域
        struct Node* next;   //指针域
    } Node;

    单链表读取:O(n)

    Status GetElem(LinkList L,int i,ElemType *e){
        int j = 0;
        LinkList p;
        p = L->next;
        while (p && j<i) {
            p = p->next;
            ++j;
        }
        if (!p || j>i) {
            return 0;
        }
        *e = p->data;
        return 1;
    }

    单链表的插入:O(n)

    Status ListInsert(LinkList L,int i,ElemType *e){
        int j=0;
        LinkList p = NULL,s;
    p = L;
    j = 1;
    while (p && j<i) { p = p->next; j++; } if (!p || j>i) { return 0; } s = (LinkList)malloc(sizeof(Node)); s->data = *e; p->next = s->next; s->next = p; return 1; }

     

    单链表的删除:O(n)

    Status ListDelete(LinkList L,int i,ElemType*e){
        int j =0;
        LinkList p = L,s;
        while (p && j <i) {
            p = p->next;
            j++;
        }
        if (!p ||j>i) {
            return 0;
        }
        s = p->next;
        p->next = s->next;
        //释放 s
        return 1;
    }
    但行好事,莫问前程。
  • 相关阅读:
    学习Timer定时器
    C++ 延时等待(sleep/timer/wait)
    MFC学习问题总结
    node.js
    总结
    关于Windows
    关于数组
    每周一次
    每周一次
    每周一次
  • 原文地址:https://www.cnblogs.com/yuhui-snail/p/9670364.html
Copyright © 2011-2022 走看看