⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqlist.cpp

📁 顺序表,第一次上传,多多照顾~~顺序表,第一次上传,多多照顾
💻 CPP
字号:
#include "iostream.h"
#include "stdlib.h"
#include "process.h"
 const LIST_INT_SIZE=100;
 const LISTINCREMENT=10;
 
 
 template <class T>//利用模板来定义顺序存储的线性表的抽象数据类型
 class seqlist
 {
public:
 T *elem;
 int length ;
 int listsize;
 int incrementsize;
 seqlist()     //构造函数
 {listsize=LIST_INT_SIZE; elem=new T[listsize];length=0;
 incrementsize=LISTINCREMENT;}
 ~seqlist(){delete []elem;listsize=0;length=0;}//析构函数,释放开辟的空间

 void insert1(int i, T x)  //插入元素e于线性表中的第i个位置上
 {if(i<0||i>length) ErrorMessage("i值不合法!");//调用错误处理函数
  for(int j=length;j>=i;j--)
	  elem[j+1]=elem[j];
  elem[i]=x;
  length++;
 }

 void printout()//输出线性表当中的所有元素
 {int j;
 for(j=0;j<length;j++)
	 cout<<elem[j]<<"   ";
 }

 int locateElem_sq(seqlist &l, T e)    //在顺序表L中查找第一个值于e相等的数据元素,
	                                   //找到则返回其在L中的位序,否则返回0
 {int i=1;
  T *p;
   p=l.elem;
   while (i<=l.length && *p++!=e )
	   ++i;
   if(i<=l.length)  return i; else return 0;
 }
 void ListDelete_sq(seqlist &l,int i,T &e) ;//删除
 void invert(seqlist &l,int s,int t);//逆置

 };
 void ErrorMessage(char  *s)
 {cout<<s<<endl;
// exit(1);
 }

 template <class T>
 void seqlist<T>::ListDelete_sq( seqlist &l,int i,T &e)//此函数删除地i个元素,并将其值用e返回
 {T *p,*q;
  if((i<1)||(i>l.length)) ErrorMessage("i值不合法!");
  p=&(l.elem[i-1]);
  e=*p;q=l.elem+l.length-1;
  for(++p;p<=q;++p) *(p-1)=*p;
  l.length--;
 }

  template <class T>
 void seqlist<T>::invert( seqlist &l,int s,int t)
  {int k; T w;
   for(k=s;k<=(s+t)/2;k++)
   {w=l.elem[k];l.elem[k]=l.elem[s+t-k];l.elem[s+t-k]=w;
       }
  }

void main()
{ 
seqlist <char>  llist;
char x;
llist.insert1(0,'a');
llist.insert1(1,'m');
for(int j=1;j<=4;j++)
{cin>> x;llist.insert1(1,x); }
llist.insert1 (0,'n');
llist.insert1(2,'8');
cout<<"原表为: ";llist.printout();

llist.invert(llist,0,llist.length-1 );cout<<"逆置后表为: ";
llist.printout ();
cout<<llist.locateElem_sq(llist,'m')<<endl;
llist.ListDelete_sq(llist,2,x);
llist.printout();

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -