链表代码总结

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

#define FAILURE 10000
#define SUCCESS 10001

struct linklist
{
int data;
struct linklist *next;
};
typedef int elemtype ;

void print(elemtype e)
{
printf("%d ", e);
}

int headinsert(struct linklist *l, elemtype e)
{
if(l == NULL)
{
return FAILURE;
}
struct linklist *q = l;
struct linklist *p;
p = (struct linklist *)malloc(sizeof(struct linklist));
p->data = e;
p->next = q->next;
q->next = p;
return SUCCESS;
}

int tailinsert(struct linklist *l, elemtype e)
{
if(l == NULL)
{
return FAILURE;
}
struct linklist *q = l;
struct linklist *p;
p = (struct linklist *)malloc(sizeof(struct linklist));
p->data = e;
p->next = NULL;
while(q->next)
{
q = q->next;
}
q->next = p;
return SUCCESS;

}

int linktraverse(struct linklist *l, void (*p)(elemtype))
{
if (NULL == l)
{
return FAILURE;
}
struct linklist *q = l;

while (q->next)
{
	q = q->next;
	p(q->data);
}

return SUCCESS;

}

int main()
{
int ret;
struct linklist first = NULL;
first = (struct linklist )malloc(sizeof(struct linklist));
if(first == NULL)
{
printf(“Init Failure”);
return 0;
}
first->next = NULL;
elemtype n;
int i;
/
for(i = 0; i < 10; i++) //头插
{
ret = headinsert(first,i);
if(ret == FAILURE)
{
printf(“Headinsert %dth Failure!\n”,i+1);
}
else if(ret == SUCCESS)
{
printf(“Headinsert %dth Success!\n”,i+1);
}
}
/

for(i = 0; i < 10; i++)   //尾插
{
	ret = tailinsert(first,i);
	if(ret == FAILURE)
	{
		printf("Tailinsert  %dth Failure!\n",i+1);
	}
	else if(ret == SUCCESS)
	{
		printf("Tailinsert  %dth Success!\n",i+1);
	}
}
	
ret = linktraverse(first, print);
if (ret == FAILURE)
{
	printf("\nTraverse Falure!\n");
}
else
{
	printf("\nTraverse Success!\n");
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值