顺序表的各种操作
来源:互联网 发布:sjcam sj5000x淘宝 编辑:程序博客网 时间:2024/05/01 06:25
/*编写程序 1 参数检测 2 边界条件检查 3 逻辑条件检查 */#include"Sequlist.h"#include<assert.h>#include<stdio.h>#include<stdlib.h>int Empty(PSeqList pSeqList)//清空{int i=0;assert(pSeqList);pSeqList->size=0;for(i=0;i<MAX_SIZE;i++)pSeqList->array[i]=0;return ;}void InitSeqList(PSeqList seq)//初始化{int i=0;//assert(seq);//断言for(i=0;i<5;i++)//循环给array赋值seq->array[i]=i;seq->size=5;return ;}void PushBack(PSeqList pSepList, DataType data)//尾插法{assert(pSepList);if(pSepList->size-1<MAX_SIZE){pSepList->array[pSepList->size]=data;pSepList->size=pSepList->size+1;}elsereturn;}void PopBack(PSeqList pSeqList){int i=pSeqList->size-1;assert(pSeqList);for( ;i>=0;i--)printf("%d",pSeqList->array[i]);}void PushFront(PSeqList pSeqList, DataType data)//头插法{int i= pSeqList->size;assert(pSeqList);if( pSeqList->size-1<MAX_SIZE){for( ;i>=0;i--)pSeqList->array[i+1]=pSeqList->array[i];pSeqList->array[0]=data;pSeqList->size=pSeqList->size+1;}elsereturn;}void PopFront(PSeqList pSeqList){int i=0;assert(pSeqList);for( ;i<pSeqList->size ;i++)printf("%d",pSeqList->array[i]);}void Insert(PSeqList pSeqList, int pos, DataType data)//插入指定数据到指定位置{int i=pSeqList->size-1;assert(pSeqList);if(pos<MAX_SIZE){for( ; i>=pos; i--){pSeqList->array[i+1]=pSeqList->array[i];pSeqList->size++;}pSeqList->array[pos]=data;pSeqList->size++;}elseprintf("fu l l!!!\n");}void Erase(PSeqList pSeqList, int pos)//删除指定位置上的数据{int i=0;assert(pSeqList);if(pos<pSeqList->size-1){ for( i=pos; i<pSeqList->size; i++){pSeqList->array[i]=pSeqList->array[i+1];} pSeqList->size--;}}int Find(PSeqList pSeqList, DataType data)//查找数据{int i=0;assert(pSeqList);for( ; i<pSeqList->size; i++) { if(pSeqList->array[i]==data) printf("查到了,它的位置:%d\n",i);}return 0;}int Find_data_num(PSeqList pSeqList, DataType data)//查找某个数据出现的次数{int i=0;int sz=0;assert(pSeqList);for( ; i<pSeqList->size; i++) { if(pSeqList->array[i]==data) sz++; }return sz;}void Remove(PSeqList pSeqList, DataType data)//删除指定数据{int i=0;assert(pSeqList); if(pSeqList->size==0) printf("顺序表已空!\n"); else { for(i=0; i<pSeqList->size; i++) { if(pSeqList->array[i]==data) { pSeqList->array[i]=pSeqList->array[i+1]; } } pSeqList->size--; }}void RemoveAll(PSeqList pSeqList, DataType data){ int i=0;assert(pSeqList); if(pSeqList->size==0) printf("顺序表已空!\n"); else {if(Find_data_num(pSeqList,data)==0)printf("没有这个数据!\n");else{while(i!= Find_data_num(pSeqList,data))Remove( pSeqList, data);printf("删除完毕\n");} }}int main(){PSeqList p=malloc(sizeof(char)*100);if(p!=NULL)//动态申请的,一定要判断是否为NULL{DataType data;Empty(p);InitSeqList(p);scanf("%d",&data);//PushFront(p,data);//PopFront(p);Find(p, data);system("pause");free(p);}return 0;}//接下来是头文件部分<pre name="code" class="cpp">#define MAX_SIZE 10typedef int DataType;typedef struct SeqList{DataType array[MAX_SIZE];int size; // 记录有效元素的个数}SeqList,*PSeqList;void InitSeqList(PSeqList seq);void PushBack(PSeqList pSepList, DataType data);void PopBack(PSeqList pSeqList);void PushFront(PSeqList pSeqList, DataType data);void PopFront(PSeqList pSeqList);void Insert(PSeqList pSeqList, int pos, DataType data);void Erase(PSeqList pSeqList, int pos);int Find(PSeqList pSeqList, DataType data);void Remove(PSeqList pSeqList, DataType data);void RemoveAll(PSeqList pSeqList, DataType data);int Empty(PSeqList pSeqList);void PrintSeqList(PSeqList pSeqList);
0 0
- 顺序表的各种操作
- 顺序表的各种操作
- 数据结构顺序表的各种操作
- 顺序表的各种操作以及合并
- 静态顺序表的各种操作
- 顺序栈的各种操作.
- (C语言)自拟顺序表的各种操作
- Sequence_List 顺序表的实现及各种操作
- 静态顺序表用C实现的各种操作
- 顺序栈的各种基本操作
- 数据结构顺序栈的各种操作
- 数据结构顺序队列的各种操作
- 数据结构实验1-顺序表-各种操作
- 顺序表的操作
- 顺序表的操作
- 顺序表的操作
- 顺序表的操作
- 顺序表的操作
- 提供的swaplinux下的互斥量则需要设置参数
- 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)题解
- https://zhuanlan.zhihu.com/p/20397902
- linux 磁盘分区命令
- POJ 1611 The Suspects
- 顺序表的各种操作
- JAVA入门.零基础学Java语言 MOOC 第6周 使用对象(基本数据类型的包裹类型对象) 第7周 函数
- 【图像处理】霍夫变换
- Cannot change version of project facet Dynamic Web Module to 2.5
- 如何在eclipse-ee中配置maven插件
- Leecode刷题
- 安装并配置Hadoop
- tcp短连接TIME_WAIT问题解决方法
- 最优子结构(optimal substructure)