From ea96672c233b414cc90958d967336ec0ca4ecd81 Mon Sep 17 00:00:00 2001 From: Xu Bai <1373953675@qq.com> Date: Sat, 29 Jun 2019 17:21:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=99=E6=80=81=E9=93=BE=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E5=A2=9E=E5=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _01.线性表/03静态链表_StaticLinkList.c | 158 ------------------------- _01.线性表/_c.静态链表.c | 132 ++++++++++++++++++++- a.out | Bin 63420 -> 51705 bytes 3 files changed, 127 insertions(+), 163 deletions(-) delete mode 100644 _01.线性表/03静态链表_StaticLinkList.c diff --git a/_01.线性表/03静态链表_StaticLinkList.c b/_01.线性表/03静态链表_StaticLinkList.c deleted file mode 100644 index d775f1d..0000000 --- a/_01.线性表/03静态链表_StaticLinkList.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "string.h" -#include "ctype.h" - -#include "stdio.h" -#include "stdlib.h" -#include "io.h" -#include "math.h" -#include "time.h" - -#define OK 1 -#define ERROR 0 -#define TRUE 1 -#define FALSE 0 - -#define MAXSIZE 1000 /* 洢ռʼ */ - -typedef int Status; /* StatusǺ,ֵǺ״̬룬OK */ -typedef char ElemType; /* ElemType͸ʵΪchar */ - - -Status visit(ElemType c) -{ - printf("%c ",c); - return OK; -} - -/* Աľ̬洢ṹ */ -typedef struct -{ - ElemType data; - int cur; /* α(Cursor) Ϊ0ʱʾָ */ -} Component,StaticLinkList[MAXSIZE]; - - -/* һάspaceиһspace[0].curΪͷָ룬"0"ʾָ */ -Status InitList(StaticLinkList space) -{ - int i; - for (i=0; i ListLength(L) + 1) - return ERROR; - j = Malloc_SSL(L); /* ÿз± */ - if (j) - { - L[j].data = e; /* ݸֵ˷data */ - for(l = 1; l <= i - 1; l++) /* ҵiԪ֮ǰλ */ - k = L[k].cur; - L[j].cur = L[k].cur; /* ѵiԪ֮ǰcurֵԪصcur */ - L[k].cur = j; /* Ԫص±긳ֵiԪ֮ǰԪصur */ - return OK; - } - return ERROR; -} - -/* ɾLеiԪ */ -Status ListDelete(StaticLinkList L, int i) -{ - int j, k; - if (i < 1 || i > ListLength(L)) - return ERROR; - k = MAXSIZE - 1; - for (j = 1; j <= i - 1; j++) - k = L[k].cur; - j = L[k].cur; - L[k].cur = L[j].cur; - Free_SSL(L, j); - return OK; -} - -Status ListTraverse(StaticLinkList L) -{ - int j=0; - int i=L[MAXSIZE-1].cur; - while(i) - { - visit(L[i].data); - i=L[i].cur; - j++; - } - return j; - printf("\n"); - return OK; -} - - -int main() -{ - StaticLinkList L; - Status i; - i=InitList(L); - printf("ʼLL.length=%d\n",ListLength(L)); - - i=ListInsert(L,1,'F'); - i=ListInsert(L,1,'E'); - i=ListInsert(L,1,'D'); - i=ListInsert(L,1,'B'); - i=ListInsert(L,1,'A'); - - printf("\nLıͷβFEDBA\nL.data="); - ListTraverse(L); - - i=ListInsert(L,3,'C'); - printf("\nLġB롰D֮롰C\nL.data="); - ListTraverse(L); - - i=ListDelete(L,1); - printf("\nLɾA\nL.data="); - ListTraverse(L); - - printf("\n"); - - return 0; -} - diff --git a/_01.线性表/_c.静态链表.c b/_01.线性表/_c.静态链表.c index 7e80b4f..bd919a5 100644 --- a/_01.线性表/_c.静态链表.c +++ b/_01.线性表/_c.静态链表.c @@ -14,23 +14,145 @@ typedef int Status; typedef char ElemType; -Status visit(ElemType c){ - printf("%c ",c); +Status visit(ElemType c) +{ + printf("%c ", c); return OK; } -typedef struct +typedef struct { ElemType data; - int cur;// α꣬Ϊ0ʱָ -}Component,staticLinkList[MAXSIZE]; + int cur; // α꣬Ϊ0ʱָ +} Component, StaticLinkList[MAXSIZE]; +Status InitList(StaticLinkList space) +{ + // һάspaceиһ + // space[0].curΪͷָ룬ָ־λ0 + int i; + for (i = 0; i < MAXSIZE - 1; i++) + { + space[i].cur = i + 1; + } + space[MAXSIZE - 1].cur = 0; + // ̬β0 + return OK; +} +int Malloc_SSL(StaticLinkList space) +{ + // ǿգ򷵻طĽ±꣬򷵻0 + // + int i = space[0].cur; + // ǰһԪصcurֵ + // һÿе± + if (space[0].cur) + { + // Ҫóһʹˣǰ + // һ + space[0].cur = space[i].cur; + } + return i; +} +void Free_SSL(StaticLinkList space, int k) +{ // ±ΪkĿյ + // ѵһԪصcurֵҪɾķcur + space[k].cur = space[0].cur; + // Ҫɾĺ̽ڵϢ + // Ҫɾķ±긳ֵһԪصcur + space[0].cur = k; +} + +int ListLength(StaticLinkList L) +{ + int i, j; + j = 0; + i = L[MAXSIZE - 1].cur; + while (i) + { + i = L[i].cur; + j++; + } + return j; +} + +Status ListInsert(StaticLinkList L, int i, ElemType e) +{ + if (i < 1 || i > ListLength(L) + 1) + { + return ERROR; + } + int j = Malloc_SSL(L); + // ÿз± + int k = MAXSIZE - 1; + int l; + if (j) + { + L[j].data = e; + for (l = 1; l <= i - 1; l++) + { + // ҵiԪ֮ǰλøֵk + k = L[k].cur; + } + L[j].cur = L[k].cur; + //iԪ֮ǰcurֵԪصcur + L[k].cur = j; + // j + return OK; + } + return ERROR; +} + +Status ListDelete(StaticLinkList L, int i) +{ + if (i < 1 || i > ListLength(L)) + { + return ERROR; + } + int k = MAXSIZE - 1; + int j; + for (j = 0; j < i - 1; j++) + { + k = L[k].cur; + } + j = L[k].cur; + L[k].cur = L[j].cur; + Free_SSL(L, j); + return OK; +} + +Status ListTraverse(StaticLinkList L) +{ + int i, j; + i = L[MAXSIZE - 1].cur; + //j = 0; + while (i) + { + visit(L[i].data); + i = L[i].cur; + //j++; + } + printf("\n"); + return OK; +} int main() { + StaticLinkList L; + InitList(L); + printf("ʼL.length=%d \n", ListLength(L)); + ListInsert(L, 1, 'u'); + ListInsert(L, 1, 'X'); + ListInsert(L, 1, ' '); + ListInsert(L, 1, 'i'); + ListInsert(L, 1, 'a'); + ListInsert(L, 1, 'B'); + ListTraverse(L); + ListDelete(L, 4); + ListTraverse(L); getchar(); return 0; } \ No newline at end of file diff --git a/a.out b/a.out index 2c2d07e69790cff4fb779dbc8b53dd5b82c2c6ec..fa9bd0b34881adaa0afb6e15ac0127035cb42a33 100644 GIT binary patch delta 14904 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 delta 26495 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