From 6e927002cd1cb09182a7045ac4cb773a5bd086a8 Mon Sep 17 00:00:00 2001 From: Xu Bai <1373953675@qq.com> Date: Fri, 28 Jun 2019 21:13:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=BE=E8=A1=A8=E5=A2=9E=E5=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 02线性表链式存储_LinkList.c | 291 ------------------------------------ _02.线性表链式存储.c | 114 ++++++++++++-- a.out | Bin 63939 -> 63420 bytes 3 files changed, 98 insertions(+), 307 deletions(-) delete mode 100644 02线性表链式存储_LinkList.c diff --git a/02线性表链式存储_LinkList.c b/02线性表链式存储_LinkList.c deleted file mode 100644 index dbd71fd..0000000 --- a/02线性表链式存储_LinkList.c +++ /dev/null @@ -1,291 +0,0 @@ -#include "stdio.h" -#include "string.h" -#include "ctype.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 20 /* 洢ռʼ */ - -typedef int Status;/* StatusǺ,ֵǺ״̬룬OK */ -typedef int ElemType;/* ElemType͸ʵΪint */ - - -Status visit(ElemType c) -{ - printf("%d ",c); - return OK; -} - -typedef struct Node -{ - ElemType data; - struct Node *next; -}Node; -typedef struct Node *LinkList; /* LinkList */ - -/* ʼ˳Ա */ -Status InitList(LinkList *L) -{ - *L=(LinkList)malloc(sizeof(Node)); /* ͷ,ʹLָͷ */ - if(!(*L)) /* 洢ʧ */ - return ERROR; - (*L)->next=NULL; /* ָΪ */ - - return OK; -} - -/* ʼ˳ԱLѴڡLΪձ򷵻TRUE򷵻FALSE */ -Status ListEmpty(LinkList L) -{ - if(L->next) - return FALSE; - else - return TRUE; -} - -/* ʼ˳ԱLѴڡLΪձ */ -Status ClearList(LinkList *L) -{ - LinkList p,q; - p=(*L)->next; /* pָһ */ - while(p) /* ûβ */ - { - q=p->next; - free(p); - p=q; - } - (*L)->next=NULL; /* ͷָΪ */ - return OK; -} - -/* ʼ˳ԱLѴڡLԪظ */ -int ListLength(LinkList L) -{ - int i=0; - LinkList p=L->next; /* pָһ */ - while(p) - { - i++; - p=p->next; - } - return i; -} - -/* ʼ˳ԱLѴڣ1iListLength(L) */ -/* eLеiԪصֵ */ -Status GetElem(LinkList L,int i,ElemType *e) -{ - int j; - LinkList p; /* һp */ - p = L->next; /* pָLĵһ */ - j = 1; /* jΪ */ - while (p && jnext; /* pָһ */ - ++j; - } - if ( !p || j>i ) - return ERROR; /* iԪز */ - *e = p->data; /* ȡiԪص */ - return OK; -} - -/* ʼ˳ԱLѴ */ -/* Lе1eϵԪصλ */ -/* Ԫزڣ򷵻ֵΪ0 */ -int LocateElem(LinkList L,ElemType e) -{ - int i=0; - LinkList p=L->next; - while(p) - { - i++; - if(p->data==e) /* ҵԪ */ - return i; - p=p->next; - } - - return 0; -} - - -/* ʼ˳ԱLѴ,1iListLength(L) */ -/* Lеiλ֮ǰµԪeLijȼ1 */ -Status ListInsert(LinkList *L,int i,ElemType e) -{ - int j; - LinkList p,s; - p = *L; - j = 1; - while (p && j < i) /* Ѱҵi */ - { - p = p->next; - ++j; - } - if (!p || j > i) - return ERROR; /* iԪز */ - s = (LinkList)malloc(sizeof(Node)); /* ½(CԱ׼) */ - s->data = e; - s->next = p->next; /* pĺ̽㸳ֵsĺ */ - p->next = s; /* sֵpĺ */ - return OK; -} - -/* ʼ˳ԱLѴڣ1iListLength(L) */ -/* ɾLĵiԪأeֵLijȼ1 */ -Status ListDelete(LinkList *L,int i,ElemType *e) -{ - int j; - LinkList p,q; - p = *L; - j = 1; - while (p->next && j < i) /* ѰҵiԪ */ - { - p = p->next; - ++j; - } - if (!(p->next) || j > i) - return ERROR; /* iԪز */ - q = p->next; - p->next = q->next; /* qĺ̸ֵpĺ */ - *e = q->data; /* qеݸe */ - free(q); /* ϵͳմ˽㣬ͷڴ */ - return OK; -} - -/* ʼ˳ԱLѴ */ -/* ζLÿԪ */ -Status ListTraverse(LinkList L) -{ - LinkList p=L->next; - while(p) - { - visit(p->data); - p=p->next; - } - printf("\n"); - return OK; -} - -/* nԪصֵͷĵԱLͷ巨 */ -void CreateListHead(LinkList *L, int n) -{ - LinkList p; - int i; - srand(time(0)); /* ʼ */ - *L = (LinkList)malloc(sizeof(Node)); - (*L)->next = NULL; /* Ƚһͷĵ */ - for (i=0; idata = rand()%100+1; /* 100ڵ */ - p->next = (*L)->next; - (*L)->next = p; /* 뵽ͷ */ - } -} - -/* nԪصֵͷĵԱLβ巨 */ -void CreateListTail(LinkList *L, int n) -{ - LinkList p,r; - int i; - srand(time(0)); /* ʼ */ - *L = (LinkList)malloc(sizeof(Node)); /* LΪԱ */ - r=*L; /* rΪָβĽ */ - for (i=0; idata = rand()%100+1; /* 100ڵ */ - r->next=p; /* βն˽ָָ½ */ - r = p; /* ǰ½㶨Ϊβն˽ */ - } - r->next = NULL; /* ʾǰ */ -} - -int main() -{ - LinkList L; - ElemType e; - Status i; - int j,k; - i=InitList(&L); - printf("ʼLListLength(L)=%d\n",ListLength(L)); - for(j=1;j<=5;j++) - i=ListInsert(&L,1,j); - printf("Lıͷβ15L.data="); - ListTraverse(L); - - printf("ListLength(L)=%d \n",ListLength(L)); - i=ListEmpty(L); - printf("LǷգi=%d(1: 0:)\n",i); - - i=ClearList(&L); - printf("LListLength(L)=%d\n",ListLength(L)); - i=ListEmpty(L); - printf("LǷգi=%d(1: 0:)\n",i); - - for(j=1;j<=10;j++) - ListInsert(&L,j,j); - printf("Lıββ110L.data="); - ListTraverse(L); - - printf("ListLength(L)=%d \n",ListLength(L)); - - ListInsert(&L,1,0); - printf("Lıͷ0L.data="); - ListTraverse(L); - printf("ListLength(L)=%d \n",ListLength(L)); - - GetElem(L,5,&e); - printf("5ԪصֵΪ%d\n",e); - for(j=3;j<=4;j++) - { - k=LocateElem(L,j); - if(k) - printf("%dԪصֵΪ%d\n",k,j); - else - printf("ûֵΪ%dԪ\n",j); - } - - - k=ListLength(L); /* kΪ */ - for(j=k+1;j>=k;j--) - { - i=ListDelete(&L,j,&e); /* ɾj */ - if(i==ERROR) - printf("ɾ%dʧ\n",j); - else - printf("ɾ%dԪֵΪ%d\n",j,e); - } - printf("LԪأ"); - ListTraverse(L); - - j=5; - ListDelete(&L,j,&e); /* ɾ5 */ - printf("ɾ%dԪֵΪ%d\n",j,e); - - printf("LԪأ"); - ListTraverse(L); - - i=ClearList(&L); - printf("\nLListLength(L)=%d\n",ListLength(L)); - CreateListHead(&L,20); - printf("崴LԪ(ͷ巨)"); - ListTraverse(L); - - i=ClearList(&L); - printf("\nɾLListLength(L)=%d\n",ListLength(L)); - CreateListTail(&L,20); - printf("崴LԪ(β巨)"); - ListTraverse(L); - getchar(); - return 0; -} - diff --git a/_02.线性表链式存储.c b/_02.线性表链式存储.c index d549db6..6ea7011 100644 --- a/_02.线性表链式存储.c +++ b/_02.线性表链式存储.c @@ -2,13 +2,15 @@ * @Author: Xu Bai * @Date: 2019-06-26 22:48:42 * @LastEditors: Xu Bai - * @LastEditTime: 2019-06-27 22:23:47 + * @LastEditTime: 2019-06-28 21:13:10 */ #include "stdio.h" #include "string.h" #include "ctype.h" #include "stdlib.h" #include "io.h" +#include "math.h" +#include "time.h" #define OK 1 #define ERROR 0 @@ -32,11 +34,11 @@ typedef struct Node } Node; typedef struct Node *LinkList; -// 把 struct Node * 定义成了新类型 LinkList。这个类型是一个结构体的指针 +// struct Node * LinkListһṹָ Status InitList(LinkList *L) { - // 插入和删除用到的是实参,所以就需要用指向指针的指针。 + // ɾõʵΣԾҪָָָ롣 *L = (LinkList)malloc(sizeof(Node)); if (!(*L)) { @@ -87,7 +89,7 @@ Status GetElem(LinkList L, int i, ElemType *e) { LinkList p = L->next; LinkList q; - int k = 0; + int k = 1; while (p && k < i) { k++; @@ -126,11 +128,11 @@ int locateElem(LinkList L, ElemType e) Status ListInsert(LinkList *L, int i, ElemType e) { - // 在L中第i个位置之前插入新的数据元素e + // Lеiλ֮ǰµԪe LinkList p, q; int j = 1; p = *L; - // 寻找第i个结点 + // Ѱҵi while (p && j < i) { p = p->next; @@ -139,7 +141,7 @@ Status ListInsert(LinkList *L, int i, ElemType e) if (j > i || !p) { - // 如果遍历到结束也没找到i结点 + // Ҳûҵi return ERROR; } q = (LinkList)malloc(sizeof(Node)); @@ -149,30 +151,110 @@ Status ListInsert(LinkList *L, int i, ElemType e) return OK; } -Status ListTraverse(LinkList L){ +Status ListDelete(LinkList *L, int i, ElemType *e) +{ + LinkList p, q; + p = *L; + int j = 1; + while (p && j < i) + { + // Ѱҽ + p = p->next; + j++; + } + if (!(p->next) || j > i) + { + return ERROR; + } + q = p->next; + *e = q->data; + p->next = q->next; + free(q); + return OK; +} + +void CreateListHead(LinkList *L, int n) +{ + // ͷĵͷ巨 + LinkList p; + int i; + srand(time(0)); // ʼ + *L = (LinkList)malloc(sizeof(Node)); + (*L)->next = NULL; + for (i = 0; i < n; i++) + { + p = (LinkList)malloc(sizeof(Node)); + p->data = rand() % 100 + 1; //100ڵ + p->next = (*L)->next; + (*L)->next = p; + } +} + +void CreateListTail(LinkList *L, int n) +{ + // β巨 + LinkList p, r; + int i; + srand(time(0)); + *L = (LinkList)malloc(sizeof(Node)); + r = *L; //rָβ + for (i = 0; i < n; i++) + { + p = (Node *)malloc(sizeof(Node)); + p->data = rand() % 100 + 1; + // ½㲢뵽β + r->next = p; + r = p; + } + r->next = NULL; +} + +Status ListTraverse(LinkList L) +{ LinkList p = L->next; while (p) { visit(p->data); - p=p->next; + p = p->next; } printf("\n"); return OK; - } int main() { LinkList L; ElemType e; + int i, j, k; InitList(&L); - ListInsert(&L, 1, 3); - ListInsert(&L, 1, 2); - ListInsert(&L, 1, 1); + for (j = 1; j <= 5; j++) + i = ListInsert(&L, 1, j); + printf("Lıͷβ15L.data="); ListTraverse(L); - int i = locateElem(L, 3); - int j = GetElem(L,2,&e); - printf("i= %d , e= %d", i,e); + ListInsert(&L, 1, 0); + printf("Lıͷ0L.data="); + ListTraverse(L); + GetElem(L, 5, &e); + printf("5ԪصֵΪ%d\n", e); + k = ListLength(L); /* kΪ */ + for (j = k + 1; j >= k; j--) + { + i = ListDelete(&L, j, &e); /* ɾj */ + if (i == ERROR) + printf("ɾ%dʧ\n", j); + else + printf("ɾ%dԪֵΪ%d\n", j, e); + } + printf("LԪأ"); + ListTraverse(L); + ClearList(&L); + CreateListHead(&L, 20); + printf("崴LԪ(ͷ巨)"); + ListTraverse(L); + ClearList(&L); + CreateListTail(&L,20); + printf("崴LԪ(β巨)"); + ListTraverse(L); getchar(); return OK; } \ No newline at end of file diff --git a/a.out b/a.out index 7d7171e02bb2f0cb37873df4d21ecfd77357fd56..47889f495d68fa2620a031b86415257243872e58 100644 GIT binary patch delta 19363 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 Im;Mm>KRR6k(EtDd delta 20024 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 YP8Uyq)kp06`jY=F>~$pl<*9D}4_0qKCIA2c