zhou753099943的专栏

顺序表的实现

我也是正在学链表,所以就按自己的想法把顺序表的基本实现功能写出来分享给大家, 希望对你有帮助。

1:头文件list.h#ifndef _LIST_H_#define _LIST_H_#include<iostream.h>#include<stdlib.h>#define ElemType int#define error -1typedef struct List{size_t size;ElemType data[];}List;void Output();void InitList(List *list);//初始化表void PopList(List *list,ElemType x);//头插void BackList(List *list,ElemType x); //尾插void PopDelete(List *list); //头删void BackDelete(List *list); //尾删void DeleteList(List *list); //删除链表int Find(List *list,ElemType x); //查找void Sort(List *list); //排序void InverseList(List *list);//翻转链表void ShowList(List *list);//显示表#endif2:功能实现部分list.cpp#include"list.h"void Output(){cout<<"*******************************"<<endl;cout<<"* [1] PopList, [2] BackList *"<<endl;cout<<"* [3] ShowList, [4] PopDelete*"<<endl;cout<<"* [5] BackDelete [6] Find*"<<endl;cout<<"* [7] InverseList[8] Sort*"<<endl;cout<<"*******************************"<<endl;cout<<"请选择:";}void InitList(List *list){list->size=0;}void PopDelete(List *list){for(int i=0;i<list->size;i++){list->data[i]=list->data[i+1];}list->size–;}void BackDelete(List *list){list->size–;}void DeleteList(List *list){list->size=0;}int Find(List *list,ElemType x){for(int i=0;i<list->size;i++){if(list->data[i]==x)return i;}return (error);}void Sort(List *list){for(int i=0;i<list->size-1;i++){for(int j=0;j<list->size-1-i;j++){if(list->data[j]>list->data[j+1]){int temp=list->data[j];list->data[j]=list->data[j+1];list->data[j+1]=temp;}}}} void InverseList(List *list){int temp;int j=list->size-1;for(int i=0;i<list->size/2;i++,j–){temp=list->data[i];list->data[i]=list->data[j];list->data[j]=temp;}}void PopList(List *list,ElemType x){list->data[list->size]=x;list->size++;}void BackList(List *list,ElemType x){for(int i=list->size;i>0;i–){list->data[i]=list->data[i-1];}list->data[0]=x;list->size++;}void ShowList(List *list){for(int i=0;i<list->size;i++){cout<<list->data[i]<<"–>";}cout<<"OVER"<<endl;}3:主函数main.cpp#include"list.h"void main(){List mylist;InitList(&mylist);int pos=1;int Number;while(pos){Output();cin>>pos;switch(pos){case 1:cout<<"请输入数据,并以-1结束输入:";while(cin>>Number,Number!=-1){PopList(&mylist,Number);}break;case 2:cout<<"请输入数据,并以-1结束输入:";while(cin>>Number,Number!=-1){BackList(&mylist,Number);}break;case 3:ShowList(&mylist);break;case 4:PopDelete(&mylist);break;case 5:BackDelete(&mylist);break;case 6:cout<<"请输入值:";cin>>Number;pos=Find(&mylist,Number);cout<<"寻找到的值:"<<mylist.data[pos]<<endl;break;case 7:InverseList(&mylist);break;case 8:Sort(&mylist);break;}}}注:这里的图片只显示一部分

,不要因为世态变迁而埋怨,不要因为命运多舛而怨恨.

zhou753099943的专栏

相关文章:

你感兴趣的文章:

标签云: