C语言实现静态顺序表的实例详解分享

—-想了解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

(0)
上一篇 2020年11月12日
下一篇 2020年11月12日

精彩推荐