zoukankan      html  css  js  c++  java
  • 数据结构------线性表的链式表示与实现

    不多说直接上代码:

    #include"stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    
    /******************************************************************************
    /* 数据类型和常量定义
    /******************************************************************************/
    #define TURE         1
    #define FALSE        0
    #define OK           1
    #define ERROR        0
    #define OVERFLOW    -2
    
    typedef int Status;
    typedef int ElemType;
    
    typedef struct LNode
    {
       ElemType data;
       struct LNode *next;
    } LNode, *LinkList;
    
    //获取元素
    Status GetElem(LinkList L,int i, ElemType &e)
    {
        int j = 0;
        LinkList p = NULL;
        p = L ->next;
        while(p && j < i) 
        {
            ++j;
            p = p ->next;
        }
        if (!p || j > i) return ERROR;
        e = p ->data;
        return OK;
    }
    //构造线性表
    void CreateList(LinkList &L,int n)
    {
        printf("input %d intergers",n);
        LinkList p = NULL;
        L = new LNode;
        L ->next = NULL;
        for (int i = n; i >0 ;--i)
        {
            p = new LNode;
            scanf("%d",&p ->data);
            p->next = L->next;
            L ->next = p;
        }
    }
    
    //在线性表中插入元素
    Status ListInsert(LinkList &L,int i,ElemType e)
    {
        //在带头结点的单链线性表L中第i个位置之前插入元素e
        LinkList p = NULL;
        LinkList s = NULL;
        p = L;
        int j = 0;
        while (p && j < i - 1)  
        {
            p = p ->next;
            ++j;
        }
        if (!p || j > i - 1)
        {
            return ERROR;
        }
        s = new LNode;
        s -> data = e;
        s -> next = p->next;
        p -> next = s;
        //delete(p); //L与P同根连枝
        return OK;
    }
    
    //打印线性表
    void PrintList(LinkList L)
    {
        LinkList p = L->next;
        while(p)
        {
           printf("%d  ",p->data);
           p = p ->next;
        }
        
    }
    
    void main()
         
    {
        LinkList L=NULL;  
        ElemType e;
        CreateList(L, 2);
        ListInsert(L,1,5);
        PrintList(L);
    }
  • 相关阅读:
    shell关闭指定进程
    linux tricks 之数据对齐。
    linux tricks 之VA系列函数.
    linux tricks 之 typeof用法.
    linux下notify机制(仅用于内核模块之间的通信)
    怎么判定一个mac地址是multicast还是unicast.
    linux tricks 之 ALIGN解析.
    fid解释
    c语言中宏定义#和 ##的作用:
    rebtree学习
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/3710350.html
Copyright © 2011-2022 走看看