谁能给我一个简单的,用C++写的类的链表,并实现简单的添加、查找和删除的功能、

 我来答
ge2008ge12
2011-11-03 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:344万
展开全部
#include<stdio.h>
#include <stdlib.h>
#include<iostream.h>
struct llist {
int num;
struct llist *next;
};

typedef struct llist node;
typedef node *llink;
typedef int Status;
typedef int ElemType;
/////////////////////////
#define OK 0
#define ERROR -1
////////////////////

void printfllist(llink ptr) {
while(ptr != NULL) {
printf("%d ",ptr->num);
ptr = ptr->next;
}
printf("\n");
}

llink createllist(int *array,int len) {
llink head;
llink ptr,ptr1;
int i;
head = (llink)malloc(sizeof(node));
if(!head) return NULL;
head->num = array[0];
head->next = NULL;
ptr = head;
for(i = 1;i < len;i++) {
ptr1 = (llink)malloc(sizeof(node));
if(!ptr1) return NULL;
ptr1->num= array[i];
ptr->next = ptr1;
ptr = ptr1;
}
ptr->next = NULL;
return head;
}

void FreeList(llink head) {
llink p,q;
p = head;
q = p->next;
while(q != NULL) {
p = q;
q = p->next;
free(p);
}
free(head);
}
///////////////////////////////////////
/////////////////////////////////////////////////
int Insert_LinkList(llink L,int n ,int x)
{

llink p= (llink)malloc(sizeof(node));
p=L;
int j=0;
while(p&&j<n-1)
{
p=p->next;
++j;
}
if(!p||j>n-1)
return ERROR;
llink s=(llink)malloc(sizeof(node));
s->num=x;
s->next=p->next;
p->next=s;
return OK;
free(p);
free(s);

}//////////
Status GetElem(llink L,int i,ElemType &e)
{
llink p= (llink)malloc(sizeof(node));
p=L;
int j=1;
while(p&&j<i)
{
p=p->next;
++j;
}
if(!p||j>i)
return ERROR;
e=p->num;
return e;
free(p);
}
////////////////////////////////////
Status ListDelete_L(llink &L,int i,ElemType &e)
{
llink p= (llink)malloc(sizeof(node));
llink q= (llink)malloc(sizeof(node));
p=L;
int j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
e=q->num;
return OK;
}
//////////////////////////////////////////////

void main() {
int llist1[6] = {1,2,3,4,5,6};
int llist2[5] = {8,19,45,76,35};
llink ptr1,ptr2;
ptr1 = createllist(llist1,6);
if(ptr1 == NULL) {
printf("failed!\n");
exit(1);
}
ptr2 = createllist(llist2,5);
if(ptr2==NULL)
{
printf("failed\n");
exit(1);
}
Insert_LinkList(ptr1,3,34);///在地三个位置后插入34;

printfllist(ptr1);
printfllist(ptr2);
int e1,e2;
GetElem(ptr1,5,e1);
cout<<"提取的元素为:"<<e1<<endl;
ListDelete_L(ptr1,2,e2);
cout<<"删除的元素为:"<<e2<<endl;
printfllist(ptr1);

FreeList(ptr1);
FreeList(ptr2);
}
追问
我是要C++啊、
追答
#include
#include
#include
//////////////////////////
typedef class llist node;
typedef node *llink;
typedef int Status;
typedef int ElemType;
/////////////////////////
#define OK 0
#define ERROR -1
////////////////////
class llist {
public:
int num;
class llist *next;
void printfllist(llink ptr);
llink createllist(int *array,int len);
void FreeList(llink head);
int Insert_LinkList(llink L,int n ,int x);
Status GetElem(llink L,int i,ElemType &e);
Status ListDelete_L(llink &L,int i,ElemType &e);

};

void llist::printfllist(llink ptr) {
while(ptr != NULL) {
printf("%d ",ptr->num);
ptr = ptr->next;
}
printf("\n");
}

llink llist::createllist(int *array,int len) {
llink head;
llink ptr,ptr1;
int i;
head = (llink)malloc(sizeof(node));
if(!head) return NULL;
head->num = array[0];
head->next = NULL;
ptr = head;
for(i = 1;i num= array[i];
ptr->next = ptr1;
ptr = ptr1;
}
ptr->next = NULL;
return head;
}

void llist::FreeList(llink head) {
llink p,q;
p = head;
q = p->next;
while(q != NULL) {
p = q;
q = p->next;
free(p);
}
free(head);
}
int llist::Insert_LinkList(llink L,int n ,int x)
{

llink p= (llink)malloc(sizeof(node));
p=L;
int j=0;
while(p&&jnext;
++j;
}
if(!p||j>n-1)
return ERROR;
llink s=(llink)malloc(sizeof(node));
s->num=x;
s->next=p->next;
p->next=s;
return OK;
free(p);
free(s);

}//////////
Status llist::GetElem(llink L,int i,ElemType &e)
{
llink p= (llink)malloc(sizeof(node));
p=L;
int j=1;
while(p&&jnext;
++j;
}
if(!p||j>i)
return ERROR;
e=p->num;
return e;
free(p);
}
空间有限?你的邮箱?
我给发全的的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式