【数据结构】02.02作业

1、

栈:借助栈的思想,先进后出;内存由计算机手动申请,释放,从大地址到小地址。

堆:借助队列的思想先进先出,内存由程序员手动申请释放。从小地址到大地址。

2,

#include 
#include 
#include 
int rem(int *p,int key,int len)
{
	int count=0;
	for(int i=0;i

3、单链表

1.主函数

int main(int argc, const char *argv[])
{
	int n=6;
	Linklist head=NULL;
	datatype element;
	for(int i=0;i

创建

Linklist create()
{
	Linklist p=(Linklist)malloc(sizeof(struct list));
	if(p==NULL)
		return NULL;
	p->next=NULL;
	p->data=0;
	return p;
}

头插

Linklist insert_head(Linklist head,datatype element)
{
	Linklist s=create();
	s->data=element;
	if(head==NULL)
	{
		head=s;
		return head;
	}
	s->next=head;
	head=s;
	return head;
}

尾插

Linklist insert_rear(Linklist head,datatype element)
{
	Linklist s=create();
	s->data=element;
	Linklist p=head;
	if(head==NULL)
	{
		head=s;
	    return head;
	}
	while(p->next!=NULL)
	{
		p=p->next;
	}
	p->next=s;
	return head;
}

头删

Linklist del_head(Linklist head)
{
	if(head==NULL)
		return head;
	Linklist p=head;
	head=head->next;
	free(p);
	p=NULL;
	return head;
}

 尾删

Linklist del_rear(Linklist head)
{
	if(head==NULL)
	return head;
	Linklist p=head;
	if(head->next==NULL)
	{
	free(head);
	head=NULL;
	return head;
	}
	while(p->next->next!=NULL)
	{
		p=p->next;
	}
	free(p->next);
	p->next=NULL;
	return head;
}

你可能感兴趣的:(算法,数据结构)