静态链表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态链表相关的知识,希望对你有一定的参考价值。
#include "stdafx.h" #include <malloc.h> #define MaxSize 50 typedef char ElemType; typedef struct { ElemType data[MaxSize]; int length; } SqList; // 一维数组即是顺序表 void InitList(SqList * &L) { L = (SqList *)malloc(sizeof(SqList)); L->length = 0; } void DestroyList(SqList *L) // 释放顺序列表 { free(L); } int ListEmpty(SqList *L) { return (L->length == 0); } int ListLength(SqList *L) { return L->length; } void DispList(SqList *L) { int i; if (ListEmpty(L))return; for (i = 0; i < L->length; i++) { printf_s("%c", L->data[i]); } printf_s("\n"); } int GetElem(SqList *L, int i, ElemType &e) // 获取顺序表第i个元素 { if (i<1 || i>L->length) { return 0; } e = L->data[i - 1]; return 1; } int LocateElem(SqList *L, ElemType e) // 在顺序表中查找元素e { int i = 0; while (i<L->length && L->data[i]!=e) { i++; } // if (i >= L->length) { return 0; } return i+1; } int ListInsert(SqList *&L, int i, ElemType e) // 在顺序列表L中第i个位置上插入元素e { int j; if (i<1 || i>L->length + 1) { return 0; } i--; for (j = L->length; j < i; j--) { L->data[j] = L->data[j - 1]; } L->data[i] = e; L->length++; return 1; } int ListDelete(SqList *&L, int i, ElemType &e) // 在顺序列表中删除第i个元素 { int j; if (i < 1 || i>L->length) { return 0; } i--; e = L->data[i]; for (j = i; j < L->length - 1; j++) { L->data[j] = L->data[j + 1]; } L->length--; return 1; }
以上是关于静态链表的主要内容,如果未能解决你的问题,请参考以下文章