建网站浩森宇特,一键优化免费下载,珠海网站制作公司,seo搜索引擎优化什么意思文章目录1.什么是线性表#xff1f;2.线性表的抽象数据类型3.线性表之顺序表的C语言实现4.线性表之链式表的C语言实现1.什么是线性表#xff1f; 2.线性表的抽象数据类型 3.线性表之顺序表的C语言实现
#includestdio.h
#includestdlib.h#define ElementType…
文章目录1.什么是线性表2.线性表的抽象数据类型3.线性表之顺序表的C语言实现4.线性表之链式表的C语言实现1.什么是线性表 2.线性表的抽象数据类型 3.线性表之顺序表的C语言实现
#includestdio.h
#includestdlib.h#define ElementType int
#define MAXSIZE 5//1.定义结点和指针
typedef struct LNode *List;
struct LNode{ElementType Data[MAXSIZE];int Last;
};
struct LNode L;
List PtrL;//2.初始化建立一个空的顺序表
List MakeEmpty()
{List PtrL;PtrL (List)malloc(sizeof(struct LNode));PtrL-Last -1;return PtrL;
}//3.查找
int Find(ElementType x,List PtrL)
{int i0;while(iPtrL-LastPtrL-Data[i]!x){i;}if(iPtrL-Last){return -1;}elsereturn i;
}//4.插入
void Insert(ElementType x,int i,List PtrL)
{int j;if(PtrL-LastMAXSIZE-1){printf(表已满\n);return;}if(i1||iPtrL-Last2){printf(位置不合法\n);return;}for(jPtrL-Last;ji-1;j--){PtrL-Data[j1]PtrL-Data[j];}PtrL-Data[i-1]x;PtrL-Last;return;
}//5.删除
void Delete(int i,List PtrL)
{int j;if(i1||iPtrL-Last1){printf(不存在第%d个元素\n,i);}for(ji;jPtrL-Last;j){PtrL-Data[j-1]PtrL-Data[j];}PtrL-Last--;return;
}int main()
{PtrL MakeEmpty();PtrL-Data[0]12;PtrL-Data[1]15;PtrL-Data[2]51;PtrL-Last2;for(int i0;i(PtrL-Last);i){printf(%d ,PtrL-Data[i]);}printf(\n);/*int findnum;findnum Find(51,PtrL);printf(findnum%d\n,findnum);*//*Insert(6,2,PtrL);for(int i0;i(PtrL-Last);i){printf(%d\n,PtrL-Data[i]);} *//*Delete(2,PtrL);for(int i0;iPtrL-Last;i){printf(%d ,PtrL-Data[i]);}printf(\n);*/return 0;
}4.线性表之链式表的C语言实现
#includestdio.h
#includestdlib.h#define Element int
typedef struct LNode *List;
struct LNode{Element Data;List Next;
};struct LNode L;
List PtrL;//1.初始化
List Empty()
{List PtrL;PtrL (List)malloc(sizeof(struct LNode));PtrL-NextNULL;return PtrL;
}//2.求表长
int Length(List PtrL)
{List p PtrL;int j0;while(p){p p-Next;j;}return j;
}//3.按序号查找
List FindKth(int K,List PtrL)
{int i1;List p PtrL;while(p!NULLiK){pp-Next;i;}if(iK){return p;}else{return NULL;}
}//4.按值查找
List Find(Element X,List PtrL)
{List pPtrL;while(p!NULLp-Data!X){pp-Next;}return p;
}//5.插入
List Insert(Element X,int i,List PtrL)
{List p,s;if(i1){s(List)malloc(sizeof(struct LNode));s-DataX;s-NextPtrL;return s;}pFindKth(i-1,PtrL);if(pNULL){printf(参数错误\n);return NULL;}else{s(List)malloc(sizeof(struct LNode));s-DataX;s-Nextp-Next;p-Nexts;return PtrL;}
}//6.删除
List Delete(int K,List PtrL)
{List p,s;if(K1){sPtrL;if(PtrL!NULL){PtrLPtrL-Next;}else{return NULL;}free(s);return PtrL;}pFindKth(K-1,PtrL);if(pNULL){printf(第%d个结点不存在\n,K-1);return NULL;}else if(p-NextNULL){printf(第%d个结点不存在\n,K);return NULL;}else{sp-Next;p-Nexts-Next;free(s);return PtrL;}
}int main()
{PtrL Empty();PtrL Insert(32,1,PtrL);PtrL Insert(56,2,PtrL);PtrL Insert(35,3,PtrL);PtrL Insert(52,4,PtrL);/*List pPtrL;for(int i0;iLength(PtrL)-1;i){printf(%d ,p-Data);pp-Next;}printf(\n);*//* PtrL Delete(3,PtrL);List p2PtrL;for(int i0;iLength(PtrL)-1;i){printf(%d ,p2-Data);p2p2-Next;} printf(\n);*/return 0;
}