2.5作业

#include<myhead.h>
typedef struct linklist
{
	union 
	{
		int lens;
		char data[128];
	};
	struct linklist *next;
	
}linklist;

linklist *linklist_creat()
{
	linklist *head_ptr=(linklist*)malloc(sizeof(linklist));
	head_ptr->lens=0;
	head_ptr->next=NULL;
	return head_ptr;
}
void linklist_show(linklist *head_ptr)
{
	linklist *temp=head_ptr;
	while(temp->next!=NULL)
	{
		temp=temp->next;
		printf("%s\n",temp->data);
	}
}

void linklist_insert(linklist *head_ptr,int pos,char *data)
{
	linklist *temp=head_ptr;
	for(int i=pos;i>1;i--)
	{
		temp=temp->next;
	}
	linklist *new=(linklist*)malloc(sizeof(linklist));
	strcpy(new->data,data);
	new->next=temp->next;
	temp->next=new;
	head_ptr->lens++;
}
void linklist_delete(linklist *head_ptr,int pos)
{
	linklist *temp=head_ptr;
	for(int i=pos;i>1;i--)
	{
		temp=temp->next;
	}
	linklist *temp2=temp->next;
	temp->next=temp2->next;
	free(temp2);
	head_ptr->lens--;
}
int main(int argc, const char *argv[])
{
	linklist *head_ptr=linklist_creat();
	linklist_insert(head_ptr,1,"123");
	linklist_insert(head_ptr,2,"qweq");
	linklist_insert(head_ptr,3,"pppp");
	linklist_show(head_ptr);
	printf("-------------------\n");
	linklist_delete(head_ptr,2);
	linklist_show(head_ptr);
	return 0;
}
#include<myhead.h>
typedef struct doubleLinkList
{
	union
	{
		int lens;
		char data[24];
	};
	struct doubleLinkList *next;
	struct doubleLinkList *prior;
}doubleLinkList;

doubleLinkList *doubleLinkList_create()
{
	doubleLinkList *head_ptr=(doubleLinkList*)malloc(sizeof(doubleLinkList));
	head_ptr->lens=0;
	head_ptr->next=NULL;
	head_ptr->prior=NULL;
	return head_ptr;
}

void doubleLinkList_show(doubleLinkList *head_ptr)
{
	doubleLinkList *temp_ptr=head_ptr;
	while(temp_ptr->next!=NULL)
	{
		temp_ptr=temp_ptr->next;
		printf("%s\n",temp_ptr->data);
	}
}
void doubleLinkList_insert(doubleLinkList *head_ptr,int pos,char *data)
{
	doubleLinkList *temp_ptr=head_ptr;
	for(int i=pos;i>1;i--)
	{
		temp_ptr=temp_ptr->next;
	}
	doubleLinkList *new_ptr=(doubleLinkList *)malloc(sizeof(doubleLinkList));
	strcpy(new_ptr->data,data);
	new_ptr->next=temp_ptr->next;
	if(new_ptr->next!=NULL)
	{
		new_ptr->next->prior=new_ptr;
	}
	temp_ptr->next=new_ptr;
	new_ptr->prior=temp_ptr;
	head_ptr->lens++;
}

void doubleLinkList_delete(doubleLinkList *head_ptr,int pos)
{
	doubleLinkList *temp_ptr=head_ptr;
	for(int i=pos;i>1;i--)
	{
		temp_ptr=temp_ptr->next;
	}
	doubleLinkList *temp_ptr2=temp_ptr->next;
	temp_ptr->next=temp_ptr2->next;
	temp_ptr2->next->prior=temp_ptr;
	free(temp_ptr2);
	head_ptr->lens--;
}
int main(int argc, const char *argv[])
{
	doubleLinkList *head_ptr=doubleLinkList_create();
	doubleLinkList_insert(head_ptr,1,"123");
	doubleLinkList_insert(head_ptr,2,"kkk");
	doubleLinkList_insert(head_ptr,3,"444");
	doubleLinkList_show(head_ptr);
	printf("-------------------\n");
	doubleLinkList_delete(head_ptr,2);
	doubleLinkList_show(head_ptr);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值