c数据结构顺序表、单链表、查找代码.doc
文本预览下载声明
顺序表
#includeiostream
using namespace std;
templatetypename T
void ins_sq_LList(T*v,int m,int*n,int i,T b)
{int k;
if(*n==m)
{coutoverflowendl; return;}
if(i*n)i=*n+1;
if(i1)i=1;
for(k=*n;k=i;k--)
v[k]=v[k-1];
v[i-1]=b;
*n=*n+1;
return;
}
#includeiostream
using namespace std;
templateclass T
class sq_LList
{private:
int mm;
int nn;
T * v;
public:
sq_LList(){mm=0;nn=0;return;}
sq_LList(int);
void prt_sq_LList();
int flag_sq_LList();
void ins_sq_LList(int,T);
void del_sq_LList(int);
};
templateclass T
sq_LList(T)::sq_LList(int m)
{mm=m;
v=new T[mm];
nn=0;
return;
}
templateclass T
void sq_LListT::prt_sq_LList()
{int i;
coutnn=nnendl;
for (i=0;inn;i++)coutv[i]endl;
return;
}
单链表
templateclass T
void linked_LListT::ins_linked_LList(Tx,Tb)
{nodeT*p,*q;
p=new nodeT;
p-d=b;
if(head==null)
{head=p;p-next=null;return;}
if(head-d==x)
{p-next=head;head=p;return;}
q=head;
while((q-next!=NULL)(((q-next)-d)!=x))
q=q-next;
p-next=q-next;q-next=p;
return;
}
linked_Llist.h
#includeiostream
using namespace std;
templateclass T
struct node
{T d;
node*next:
};
templateclass T
class linked_LList
{private:
nodeT*head:
public:
linked_LList();
void prt_linked_LList();
void ins_linked_LList(T,T);
int del_linked_LList(T);
};
templateclass T
linked_LListT::linked_LList()
{head=NULL;return;}
templateclass T
void linked_LListT::prt_linked_LList()
{nodeT*p;
p=head;
if(p==NULL){cout空链表!endl;return;}
do{coutp-dendl;
p=p-next;
}while(p!=NULL);
return;
}
#includeiostream
using namespace std;
templateclass T
struct node
{T d;
node*next:
};
//定义线性链表类
templateclass T
class linked_LList
{private:
nodeT*head:
public:
linked_LList();
void prt_linked_LList();
void ins_linked_LList(T,T);
int del_linked_LList(T);
};
//建立空链表
templateclass T
linked_LListT::linked_LList()
{head=NULL;return;}
//扫描输出链表中的元素
templateclass T
void linked_LListT::prt_linked_LList()
{nodeT*p;
p=head;
if(p==NULL){cout空链表!endl;return;}
do{coutp-dendl;
p=p-next;
}while(
显示全部