—-想了解C语言实现静态顺序表的实例详解分享的全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>
C语言实现静态顺序表的实例详解
线性表
定义一张顺序表也就是在内存中开辟一段连续的存储空间,并给它一个免费精选名字大全进行标识。只有定义了一个顺序表,才能利用该顺序表存放数据元素,也才能对该顺序表进行各种操作。
接下来看看静态的顺序表,直接上代码:
SeqList.h
#define _CRT_SECURE_NO_WARNINGS 1 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #define MAX 10 typedef int DataType; typedef struct SeqList { DataType data[MAX]; int sz; }SeqList,*pSeqList; void InitSeqList(pSeqList ps); void PushBack(pSeqList ps, DataType d); void PopBack(pSeqList ps); void PushFront(pSeqList ps, DataType d); void PopFront(pSeqList ps); void Display(const pSeqList ps); int Find(pSeqList ps, DataType d); void Insert(pSeqList ps, DataType d, int pos); void Remove(pSeqList ps, DataType d); void RemoveAll(pSeqList ps, DataType d); void Reverse(pSeqList ps); void Sort(pSeqList ps); int BinarySearch(pSeqList ps, DataType d); #endif//__SEQLIST_H__
SeqList.c
#define _CRT_SECURE_NO_WARNINGS 1 #include "SeqList.h" void InitSeqList(pSeqList ps) { assert(ps); ps->sz = 0; memset(ps->data, 0, sizeof(DataType)*MAX); } void PushBack(pSeqList ps, DataType d) { assert(ps); if (ps->sz == MAX) { return; } ps->data[ps->sz] = d; ps->sz++; } void PopBack(pSeqList ps) { assert(ps); if (ps->sz == 0) { return; } ps->sz--; } void PushFront(pSeqList ps, DataType d) { int i = 0; assert(ps); for (i = ps->sz; i >= 1; i--) { ps->data[i] = ps->data[i - 1]; } ps->data[0] = d; ps->sz++; } void PopFront(pSeqList ps) { int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) { ps->data[i] = ps->data[i + 1]; } ps->sz--; } void Display(const pSeqList ps) { int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) { printf("%d ", ps->data[i]); } printf("n"); } int Find(pSeqList ps, DataType d) { int i = 0; assert(ps); for (i = 0; i < ps->sz; i++) { if (ps->data[i] == d) { return i; } } return -1; } void Insert(pSeqList ps, DataType d, int pos) { int i = 0; assert(ps); if (ps->sz == MAX) { return; } //方式一 //for (i = ps->sz - 1; i >= pos; i--) //{ // ps->data[i + 1] = ps->data[i]; /本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/488395.html