数据结构--顺序表c语言实现
来源:互联网 发布:java进阶书籍 知乎 编辑:程序博客网 时间:2024/04/28 11:13
SqList.h如下:
<pre name="code" class="cpp">#ifndef __SQLIST_H#define __SQLIST_Htypedef struct Sqlist{int *data;int usedsize;int size;}Sqlist;void InitList(Sqlist *list);//初始化顺序表void Destory(Sqlist *list);//摧毁顺序表bool ListEmpty(Sqlist *list);//判断顺序表是否为空int ListLength(Sqlist *list);//取得顺序表长度bool GetElem(Sqlist *list,int i,int *e);//取得顺序表中第i个元素的值放到ebool PriElem(Sqlist *list,int cur,int *e);//返回cur的前驱bool NextElem(Sqlist *list,int cur,int *e);//返回cur的后继bool Insert_Head(Sqlist *list,int var);//头插元素bool Insert_Tail(Sqlist *list,int var);//尾插元素bool Insert_Sq(Sqlist *list,int pos,int var);//在顺序表第pos个元素前插入varint Search(Sqlist *list,int var,int pos);//判断顺序表中pos后是否含有值为var的元素bool Delete(Sqlist *list,int pos);//删除第pos个元素void Show(Sqlist *list);//打印void Traverselist(Sqlist *list);//就地逆置#endif
SqList.c如下:
<pre name="code" class="cpp">#include"SqList.h"#include<stdio.h>#include<stdlib.h>#include<assert.h>#define MAXSIZE 20#define INCSIZE 10void InitList(Sqlist *list)//初始化顺序表{list->data=(int *)malloc(sizeof(int)*MAXSIZE);assert(list->data);list->size=MAXSIZE;list->usedsize=0;}void Destory(Sqlist *list)//摧毁顺序表{free(list->data);list->size=0;list->usedsize=0;}bool ListEmpty(Sqlist *list)//判断顺序表是否为空{if(list->usedsize==0)return true;return false;}int ListLength(Sqlist *list)//取得顺序表长度{return list->usedsize;}bool GetElem(Sqlist *list,int i,int *e)//取得顺序表中第i个元素的值放到e{if(i<0 || i>list->usedsize)return false;*e=list->data[i];return true;}bool PriElem(Sqlist *list,int cur,int *e)//返回cur的前驱{int pos=Search(list,cur,0);if(pos<=0)return false;*e=list->data[pos-1];return true;}bool NextElem(Sqlist *list,int cur,int *e)//返回cur的后继{int pos=Search(list,cur,0);if(pos<0 || pos==list->usedsize-1)return false;*e=list->data[pos+1];return true;}bool Insert_Head(Sqlist *list,int var)//头插元素{if(list->usedsize==list->size){list->data=(int *)realloc(list->data,sizeof(int)*(list->size+INCSIZE));assert(list->data);list->size+=INCSIZE;}for(int i=list->usedsize;i>0;i--){list->data[i]=list->data[i-1];}list->data[0]=var;list->usedsize++;return true;}bool Insert_Tail(Sqlist *list,int var)//尾插元素{if(list->usedsize==list->size){list->data=(int *)realloc(list->data,sizeof(int)*(list->size+INCSIZE));assert(list->data);list->size+=INCSIZE;}list->data[list->usedsize]=var;list->usedsize++;return true;}bool Insert_Sq(Sqlist *list,int pos,int var)//在顺序表第pos个元素前插入var{if(pos<1 ||pos>list->usedsize+1)return false;for(int i=list->usedsize-1;i>=pos-1;i--){list->data[i+1]=list->data[i];}list->data[pos-1]=var;list->usedsize++;return true;}int Search(Sqlist *list,int var,int pos)//判断顺序表中pos后是否含有值为var的元素{if(pos<0 ||pos>list->usedsize+1)return -1;for(int i=pos;i<list->usedsize;i++){if(list->data[i]==var)return i;}return -1;}bool Delete(Sqlist *list,int pos)//删除第pos个元素{if(pos<1 ||pos>list->usedsize)return false;for(int i=pos;i<list->usedsize;i++){list->data[i-1]=list->data[i];}list->usedsize--;return true;}void Show(Sqlist *list)//打印{for(int i=0;i<list->usedsize;i++){printf("%d ",list->data[i]);}printf("\n");}
0 0
- C语言实现数据结构中的顺序表
- c语言实现数据结构顺序表源代码
- 数据结构C语言实现之顺序表
- 数据结构--顺序表c语言实现
- 【数据结构】C语言实现顺序表
- 【数据结构】C语言实现顺序链表
- [c语言]数据结构 顺序表的实现
- 【数据结构】实现顺序表(c语言)
- 数据结构-队列-顺序表实现-C语言
- C语言实现顺序表-数据结构
- 【数据结构】C语言实现顺序表(静态顺序表)
- 【数据结构】C语言实现顺序表(动态顺序表)
- 数据结构:顺序表的实现(C语言实现)
- C语言数据结构-顺序表
- 数据结构之---c语言实现线性表的顺序表
- 数据结构--线性表.顺序表(C语言实现)
- 一、数据结构基础之顺序表C语言实现
- C语言数据结构之:顺序表的实现
- 10款实用Android UI工具
- Join the Conversation
- DirectX3D窗体创建
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- 数据结构--顺序表c语言实现
- [LeetCode]longest consecutive sequence
- 超体
- DBUtils使用详细示例
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- 【计组】MIPS实现的递归函数的非递归实现
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
- 中科燕园GIS外包团队(手机:13261043797,QQ:1216807928)项目案例 --gis高校云智能