鏈表查找插入刪除

typedef struct LNode{
	int data;
	struct LNode* next;
}LNode,*LinkList;

bool GetElem(LinkList L,int i,int &x){
	LinkList p=L->next;int j=1;
	while(p!=NULL&&j<i){
		p=p->next;j++;
	}
	if(p==NULL||j>i)return false;
	x=p->data;
	return true;
}

LinkList LocateElem(LinkList L,int x){
	LinkList p=L->next;
	while(p!=NULL&&p->data!=x)p=p->next;
	return p;
}

bool ListDelete(LinkList &L,int i,int &x){
	LinkList p=L;int j=0;
	while(p->next!=NULL&&j<i-1){
		p=p->next;j++;
	}
	if(p->next==NULL||j>i-1)return false;
	LinkList q=p->next;
	p->next=q->next;
	x=q->data;free(q);
	return true;
} 

bool ListInsert(LinkList &L,int i,int x){
	LinkList p=L;int j=0;
	while(p!=NULL&&j<i-1){
		p=p->next;j++;
	}
	if(p==NULL||j>i-1)return false;
	LinkList s=(LinkList)malloc(sizeof(LNode));
	s->data=x;s->next=p->next;
	p->next=s;
	return true;
}

 

發佈了55 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章