首页 > 代码库 > 静态链表
静态链表
#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; }
静态链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。