<address id="rphpx"><listing id="rphpx"></listing></address>

<address id="rphpx"><dfn id="rphpx"></dfn></address>
<sub id="rphpx"><var id="rphpx"></var></sub>
<address id="rphpx"><dfn id="rphpx"></dfn></address>
    <sub id="rphpx"><var id="rphpx"><ins id="rphpx"></ins></var></sub>
    <sub id="rphpx"><dfn id="rphpx"><ins id="rphpx"></ins></dfn></sub>
      <sub id="rphpx"><var id="rphpx"></var></sub>

      <sub id="rphpx"><var id="rphpx"></var></sub>

        <sub id="rphpx"><var id="rphpx"><ins id="rphpx"></ins></var></sub>

        <thead id="rphpx"><var id="rphpx"><output id="rphpx"></output></var></thead>

        <sub id="rphpx"><listing id="rphpx"></listing></sub>

          <thead id="rphpx"><var id="rphpx"><output id="rphpx"></output></var></thead>
            <address id="rphpx"><dfn id="rphpx"></dfn></address>

            【数据结构】静态链表的实现(C语言描述)

            #include <stdio.h>
            #include "stdlib.h"
            
            
            #define OK 1
            #define ERROR 0
            #define TRUE 1
            #define FALSE 0
            
            #define MAXSIZE 1000    // 定义线性表最大容量
            
            typedef int Status;
            typedef int ElemType;
            
            
            // 定义静态链表的存储结构
            typedef struct
            {
                ElemType  data;     // 数据域
                int       curr;     // 存放下一个节点在数组中的下标
            } Node;
            
            // 定义StaticLinkList
            typedef Node StaticLinkList[MAXSIZE] ;
            
            // 先初始化一个备用的静态表(其实是数组)
            // L[0].curr = 1, L[1].curr = 2, L[2].curr = 3 ...
            Status InitList(StaticLinkList L){
            
                for(int i=0; i< MAXSIZE; i++){
                    L[i].curr = i+1;
                }
                // 当前静态链表为空表,最后一个元素所指向的下一个元素的下标为0(也就是指向一个元素)
                L[MAXSIZE-1].curr = 0;
            
                return  OK;
            }
            
            // 获取空闲元素的下标 并将下标存放在L[0].curr 中
            int GetBlankIndex(StaticLinkList L){
                // L[0].curr 始终存的是空闲元素的下标
                int blankIndex = L[0].curr;
                if (L[0].curr) L[0].curr = L[blankIndex].curr;
            
                return  blankIndex;
            }
            
            
            Status ListInsert(StaticLinkList L, ElemType e){
            
                int blankIndex = GetBlankIndex(L);
            
                L[blankIndex].data = e;
            
                return OK;
            }
            
            
            // 删除第i个元素
            Status ListDelete(StaticLinkList L, int i){
            
                return  OK;
            }
            
            
            void Visit(StaticLinkList L){
                int blankIndex = GetBlankIndex(L);
            
                for (int i = 1; i < blankIndex; ++i) {
                    printf("%d ",L[i].data);
                }
                printf("\n");
            }
            
            
            int main() {
                StaticLinkList L;
                InitList(L);
            
                for(int i=1; i<=5; i++){
                    ListInsert(L, i);
                }
            
                Visit(L);
            
            
            
            }
            相关文章
            相关标签/搜索
            白小姐四不像必中一肖+正版+网址930