
#include<iostream>
using namespace std;
#define ElemType int
#define MaxSize 10
typedef struct{
ElemType data[MaxSize];
int length;
}SqList;
bool InitList(SqList &L){
L.length=0;
return true;
}
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1)
return false;
if(L.length>=MaxSize)
return false;
for(int j=L.length+1;j>=i;j--){
L.data[j]=L.data[j-1];}
L.data[i-1]=e;
L.length++;
return true;
}
bool ListDelete(SqList &L,int i,ElemType &e){
if(i<1||i>L.length)return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++){
L.data[j-1]=L.data[j];
}
L.length--;
return true;
}
int LocateElem(SqList &L,ElemType e){
for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;
return 0;
}
void PrintList(SqList &L){
printf("当前数列中的元素为: ");
for(int i=0;i<L.length;i++){
printf("%d ",L.data[i]);
}
printf("\n");
}
void testSqList()
{
ElemType e;
SqList L;
InitList(L);
ListInsert(L,1,0);
ListInsert(L,2,1);
ListInsert(L,3,2);
ListInsert(L,4,3);
PrintList(L);
ListDelete(L,1,e);
printf(" e = %d \n",e);
PrintList(L);
int loc=LocateElem(L,3);
printf("loc = %d \n",loc);
}
int main()
{
testSqList();
return 0;
}
#include<iostream>
#include<malloc.h>
using namespace std;
#define ElemType int
#define MaxSize 10
typedef struct{
ElemType *data;
int length;
}SqList;
bool InitList(SqList &L){
L.data=(ElemType *)malloc(sizeof(SqList)*MaxSize);
if(!L.data){
cout<<"内存分配失败"<<endl<<endl;
return false;
}
L.length=0;
cout<<"内存分配成功"<<endl<<endl;
return true;
}
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1)
return false;
if(L.length>=MaxSize)
return false;
for(int j=L.length+1;j>=i;j--){
L.data[j]=L.data[j-1];}
L.data[i-1]=e;
L.length++;
return true;
}
bool ListDelete(SqList &L,int i,ElemType &e){
if(i<1||i>L.length)return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++){
L.data[j-1]=L.data[j];
}
L.length--;
return true;
}
int LocateElem(SqList &L,ElemType e){
for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;
return 0;
}
void PrintList(SqList &L){
printf("当前数列中的元素为: ");
for(int i=0;i<L.length;i++){
printf("%d ",L.data[i]);
}
printf("\n");
}
void testSqList()
{
ElemType e;
SqList L;
InitList(L);
ListInsert(L,1,0);
ListInsert(L,2,1);
ListInsert(L,3,2);
ListInsert(L,4,3);
PrintList(L);
ListDelete(L,1,e);
printf(" e = %d \n",e);
PrintList(L);
int loc=LocateElem(L,0);
printf("loc = %d \n",loc);
}
int main()
{
testSqList();
return 0;
}
#include<iostream>
#include<malloc.h>
using namespace std;
#define ElemType int
typedef struct LinkNode{
ElemType data;
LinkNode *next;
} *LinkList;
bool List_HeadInsert(LinkList &L);
bool List_HeadInsert_no(LinkList &L);
bool List_TailInsert(LinkList &L);
bool List_TailInsert_no(LinkList &L);
LinkNode *GetElem(LinkList L,int i);
LinkNode *GetElem_no(LinkList L,int i);
int LocateElem(LinkList L,ElemType e);
int LocateElem_no(LinkList L,ElemType e);
void PrintList(LinkList &L);
void PrintList_no(LinkList &L);
bool List_HeadInsert(LinkList &L){
int x;
LinkList s;
L=(LinkList)malloc(sizeof(LinkNode));
L->next=NULL;
if(L==NULL)return false;
cout<<"请输入插入元素:"<<endl;
cin>>x;
while(x!=-1){
s=(LinkList)malloc(sizeof(LinkNode));
s->data=x;
s->next=L->next;
L->next=s;
cin>>x;
}
return true;
}
bool List_HeadInsert_no(LinkList &L){
int x;
LinkList s;
cout<<"请输入插入元素:"<<endl;
cin>>x;
while(x!=-1){
s=(LinkList)malloc(sizeof(LinkNode));
s->data=x;
if(L==NULL){
L=s;
L->next=NULL;
}
else{
s->next=L;
L=s;
}
cin>>x;
}
return true;
}
bool List_TailInsert(LinkList &L){
int x;
L=(LinkList)malloc(sizeof(LinkNode));
if(!L){return false;}
LinkList s,t=L;
cout<<"请输入插入元素:"<<endl;
cin>>x;
while(x!=-1){
s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=x;
t->next=s;
t=s;
cin>>x;
}
t->next=NULL;
return true;
}
bool List_TailInsert_no(LinkList &L){
ElemType x;
LinkNode *s,*t;
cout<<"请输入插入值:"<<endl;
cin>>x;
while(x != -1){
s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=x;
s->next=NULL;
if(L==NULL){
L=s;
t=L;
}
else{
t->next=s;
t=s;
}
cin>>x;
}
return true;
}
LinkNode *GetElem(LinkList L,int i){
LinkNode *p=L->next;
int j=1;
if(i<1)return NULL;
if(i==0)return L;
while(p&&j<i){
p=p->next;
j++;
}
return p;
}
LinkNode *GetElem_no(LinkList L,int i){
LinkNode *p=L;
int j=1;
if(i<1)return NULL;
if(i==0)return p;
while(p&&j<i){
p=p->next;
j++;
}
return p;
}
int LocateElem(LinkList L,ElemType e){
LinkNode *p=L->next;
int i=1;
while(p){
if(p->data==e)return i;
p=p->next;i++;
}
return 0;
}
int LocateElem_no(LinkList L,ElemType e){
LinkNode *p=L;
int i=1;
while(p){
if(p->data==e)return i;
p=p->next;i++;
}
return 0;
}
void PrintList(LinkList &L){
LinkNode *p=L;
if(!p->next){
return;
}
while(p=p->next){
cout<<p->data<<" ";
}
cout<<endl;
}
void PrintList_no(LinkList &L){
LinkNode *p=L;
while(p){
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
void testLinkList(){
LinkList L=NULL;
}
int main()
{
testLinkList();
return 0;
}