设为首页 加入收藏

TOP

C语言线性单链表相关函数和算法的基本实现详细教程(二)
2018-05-28 09:03:26 】 浏览:438
Tags:语言 线性 单链表 相关 函数 算法 基本 实现 详细 教程

p->next; while(p->next) { while(q) { if(p->data>q->data) { int e = p->data; p->data = q->data; q->data = e; q = q->next; } else { q = q->next; } } r = r->next; p = p->next; q = p->next; } return OK; } }

删除链表中所有元素值大于x的结点:

int deleteAGTX(linkedList L,int x) 
{
	if(L->next==NULL){return ERROR;}
	else{
		Node *p = L;
		while(p->next)
		{
			if(p->next->data>x)
			{
				Node *temp = p->next;
				p->next = p->next->next;
				free(temp);
			}
			else{
				p = p->next;
			}
		}
		return OK;
	}
}

将链表中所有负数前置并排序:

//负数在前排序 
int negativePriority(linkedList L)
{
	if(L->next==NULL){return ERROR;}
	else{
		Node *p = L;
		while(p->next)
		{
			if(p->next->data<0)
		 {
			  Node *temp = p->next;
			  p->next = temp->next;
			  temp->next = L->next;
			  L->next = temp;
		 }
		 else{p = p->next;}
		}
		return OK;
	}
} 

南京航空航天大学922部分真题:

//2014真题-数据结构6
int _2014_T6(linkedList L)
{
	if(L->next==NULL){return ERROR; }
	else{
		Node *p = L;
		Node *t = NULL;
		Node *s = NULL;
		int count = 1;
		while(p->next)
		{
			if(count%2==0)
			{
				t = p->next;
				p->next = p->next->next; //关键步骤 
				t->next = s;
				s = t;
			}
			else{
				p = p->next;
			}
			count++;
		}
		p->next = s;
		return OK;
	}
} 

//2015真题数据结构6
int _2015_T6(linkedList L)
{
	if(L->next==NULL){return ERROR; }
	else{
		Node *p = L->next;
		Node *q = L->next;
		Node *t = L;
		Node *top = NULL;
		while(p->next)
		{
			while(q->next)
			{
				if(q->next->data>p->data)
				{
					p = q->next;
					t = q;
					q = q->next;
				}
				else{
					q = q->next;
				}
			}
			t->next = t->next->next;
			p->next = top;
			top = p;
			t = L;
			p = q = L->next;
		}
		p->next = top;
		return OK;
	}
} 

//2013真题数据结构6
int _2013_T6(linkedList La,linkedList Lb)
{
	if(La->next==NULL){return ERROR;}
	else{
		Node *a = La;
		Node *b = Lb;
		int element;
		while(a->next)
		{
			element = a->next->data;
			while(b->next)
			{
				if(b->next->data==element){break;}
				else{b = b->next;}
			}
			
			if(b->next==NULL)
			{
				Node *t = a->next;
				a->next = a->next->next;
				free(t);
			}
			else{a = a->next;} 
			b = Lb;
		}
		
		a = La;
		while(a->next)
		{
			Node *p = La->next;
			int e;
			while(p->next)
			{
				if(p->next->data>a->next->data)
				{
					e = a->next->data;
					a->next->data = p->next->data;
					p->next->data = e;
				}
				p = p->next;	
			}
			a = a->next;
		}
		return OK;
	}
}

//2011真题-数据结构24
int _2011_T24(linkedList L)
{
 if(L->next == NULL){return ERROR;}
 else{
 		Node *p = L;
	  int element = p->next->data;
	  while(p->next)
	  {
		 if(element>p->next->data)
		 {
			element = p->next->data;
		 }
		 p = p->next;
	  }
	  p = L;
	  while(  
		
编程开发网
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇异常和Bug、异常和BUG的对比和C语.. 下一篇冒泡排序算法C语言代码测试总结