数据结构-顺序表(C语言)
来源:互联网 发布:咸安淘宝开店培训学校 编辑:程序博客网 时间:2024/05/21 13:56
SeqList.h
#include<stdio.h>#include<string.h>#define MAXSIZE 100typedef struct{ DATA ListData[MAXSIZE+1]; //保存顺序表的数组 int ListLen; //顺序表长度 }SeqListType;void SeqListInit(SeqListType *SL); //初始化顺序表int SeqListLength(SeqListType *SL); //返回顺序表的元素数量 int SeqListAdd(SeqListType *SL,DATA data); //向顺序表中添加元素 int SeqListInsert(SeqListType *SL,int n,DATA data); //向顺序表中插入元素 int SeqListDelete(SeqListType *SL,int n); //删除顺序表中的据元素 DATA *SeqListFindByNum(SeqListType *SL,int n); //根据序号返回元素int SeqListFindByCont(SeqListType *SL,char *key); //按关键字查找 int SeqListAll(SeqListType *SL);//遍历顺序表中的内容
SeqList.c
void SeqListInit(SeqListType *SL) //初始化顺序表{ SL->ListLen=0;//设定表长度 }int SeqListLength(SeqListType *SL) //返回顺序表的元素数量 { return (SL->ListLen);}int SeqListAdd(SeqListType *SL,DATA data) //向顺序表中添加元素 { if(SL->ListLen>=MAXSIZE) { printf("顺序表已满\n"); return 0; } SL->ListData[++SL->ListLen]=data;//保存数据到表尾 return 1;}int SeqListInsert(SeqListType *SL,int n,DATA data) //向顺序表中插入元素 { if(SL->ListLen>=MAXSIZE)//节点数量超过最大数量 { printf("顺序表已满\n"); return 0; } if(n<1||n>SL->ListLen-1) { printf("插入节点序号错误\n"); return 0; } int i; for(i=SL->ListLen;i>=n;i--)//插入点之后的数据后移一位 从后往前 SL->ListData[i+1]=SL->ListData[i]; SL->ListData[n]=data;//插入节点 SL->ListLen++;//表长度+1 return 1;}int SeqListDelete(SeqListType *SL,int n) //删除顺序表中的数据元素 { if(n<1||n>SL->ListLen+1) { printf("删除节点错误\n"); return 0; } int i; for( i=n;i<SL->ListLen;i++)//数据前移 SL->ListData[i]=SL->ListData[i+1]; SL->ListLen--;//表长度-1 return 1;}DATA *SeqListFindByNum(SeqListType *SL,int n) //根据序号返回元素{ if(n<1||n>SL->ListLen+1) { printf("节点序号错误\n"); return NULL; } return &(SL->ListData[n]);}int SeqListFindByCont(SeqListType *SL,char *key) //按关键字查找 { int i; for( i=1;i<=SL->ListLen;i++) if(strcmp(SL->ListData[i].key,key)==0)return i; return 0; }
SeqListTest.c
#include<stdio.h>typedef struct{ char key[15]; char name[20]; int age;}DATA;#include"SeqList.h"#include"SeqList.c"int SeqListAll(SeqListType *SL) //遍历顺序表{ int i; for(i=1;i<=SL->ListLen;i++) { printf("(%s,%s,%d)\n",SL->ListData[i].key,SL->ListData[i].name,SL->ListData[i].age); }}int main(){ SeqListType SL; DATA data,*data1; char key[15]; SeqListInit(&SL); do{ printf("Input key,name,age:"); fflush(stdin);//清空缓冲区 scanf("%s%s%d",&data.key,&data.name,&data.age); if(data.age){ //年龄不为零时 添加 if(!SeqListAdd(&SL,data))break; } else break; }while(1); printf("\n节点顺序为:\n"); SeqListAll(&SL); fflush(stdin); printf("\n取出的节点序号:"); int i; scanf("%d",&i); data1=SeqListFindByNum(&SL,i); if(data1) printf("第%d节点是:(%s,%s,%d)\n",i,data1->key,data1->name,data1->age); fflush(stdin); printf("\ninput key:"); scanf("%s",&key); i=SeqListFindByCont(&SL,key);// printf("%d",i); data1=SeqListFindByNum(&SL,i); if(data1) printf("第%d节点是:(%s,%s,%d)\n",i,data1->key,data1->name,data1->age); getch(); return 0;}
0 0
- 【数据结构】实现顺序表(c语言)
- 数据结构-顺序表(C语言)
- C语言数据结构-顺序表
- 数据结构--线性表.顺序表(C语言实现)
- 数据结构 - 线性表之顺序表 (c 语言)
- 数据结构(c语言)线性表-顺序表
- 数据结构(C语言)读书笔记3:顺序表
- 数据结构 (C语言)顺序表的基本操作
- 数据结构 顺序表的实现(C语言)
- 数据结构——顺序表实现(c语言)
- 数据结构——顺序表(C语言实现)
- 数据结构:顺序表的实现(C语言实现)
- 数据结构(C语言)线性表 顺序存储
- 数据结构:顺序表的ADT(C语言描述)
- C语言实现数据结构中的顺序表
- c语言实现数据结构顺序表源代码
- 数据结构C语言实现之顺序表
- c语言_数据结构_顺序表
- HTM select绑定数据库数据
- leetCode No.134 Gas Station
- 开发自己的框架——(二)数据库工具类的封装
- [Codeforces #369 (Div. 2)E. ZS and The Birthday Paradox]勒让德定理+逆元
- 国内一流互联网面试题
- 数据结构-顺序表(C语言)
- Quartz 2D编程指南之二:图形上下文(Graphics Contexts)
- js记录用户在网站的浏览记录和停留时间
- TOJ 1736.Knight Moves
- Linux下JNI尝试
- 2016.09.01
- 百度地图植入android应用系列教程一植入百度地图
- 百度地图植入android应用系列教程二实现百度地图定位及方向传感器
- 百度地图植入android应用系列教程三实现百度地图上的覆盖物Marker与InfoWindow的使用