当前位置: 编程技术>c/c++/嵌入式
用C语言实现单链表的各种操作(二)
来源: 互联网 发布时间:2014-10-15
本文导语: 上一篇文章主要是单链表的一些最基本的操作,下面,主要是一些其他的典型的算法和测试程序。 代码如下:/* 对单链表进行排序处理*/struct LNode *sort(struct LNode *head){ LinkList *p; int n,i,j; int temp; n = ListLength(head); if(head == N...
上一篇文章主要是单链表的一些最基本的操作,下面,主要是一些其他的典型的算法和测试程序。
/* 对单链表进行排序处理*/
struct LNode *sort(struct LNode *head)
{
LinkList *p;
int n,i,j;
int temp;
n = ListLength(head);
if(head == NULL || head->next == NULL)
return head;
p = head->next;
for(j =1;jnext;
for( i =0;idata > p->next->data)
{
temp = p->data;
p->data = p->next->data;
p->next->data = temp;
}
p = p->next;
}
}
return head;
}
/*对单链表进行逆置*/
LinkList *reverse(LinkList *head)
{
LinkList *p1,*p2 = NULL,*p3 = NULL;
if(head == NULL || head->next == NULL)
return head;
p1 = head->next;
while(p1!=NULL)
{
p3 = p1->next;
p1->next = p2;
p2 = p1;
p1 = p3;
}
head->next = p2;
// head = p2;
return head;
}
Status equal(ElemType c1,ElemType c2)
{
if(c1== c2)
return TRUE;
else
return FALSE;
}
/*将所有在线性表Lb中但不在La中的数据元素插入到La 中*/
void Union(LinkList *La,LinkList *Lb)
{
ElemType *e;
int La_len,Lb_len;
int i;
La_len = ListLength(La);
Lb_len = ListLength(Lb);
for(i=1;inext;
p = p->next->next;
}
return mid;
}
下面主要是单链表的一个测试的程序。
Status comp(ElemType c1,ElemType c2)
{
if(c1==c2)
return TRUE;
else
return FALSE;
}
void visit(ElemType c)
{
printf("%4d",c);
}
void main()
{
LinkList *L;
LinkList *mid;
mid = (struct LNode *)malloc(sizeof(struct LNode));
ElemType *e,e0,*e1;
Status i;
int j,k;
e = (ElemType *)malloc(sizeof(ElemType));
e1 = (ElemType *)malloc(sizeof(ElemType));
i = InitList(&L);
for(j=1;jdata);
printf("L逆置后的输出:L=");
ListTraverse(reverse(L),visit);
printf("L排序后依次为:L=");
ListTraverse(sort(L),visit);
i = ListEmpty(L);
printf("L 是否为空:i=%d(1:是,0:否)n",i);
i = ClearList(L);
printf("清空L后:L=");
ListTraverse(L,visit);
i = ListEmpty(L);
printf("L是否为空:i=%dn",i);
for(j=1;j
可不可以这样认为!c语言是一道唯一指向操作系统的语言,精通了它,就了解了操作系统?
操作系统一般是用什么语言编写的
怎样用JAVA语言实现对串口的操作?
Linux 下的C语言实现数据库连接池操作。
Linux下如何用C语言操作Oracle数据库相关的图书推荐
求在linux下用c语言实现数据库连接池的操作。
C语言的JPEG操作库 OpenJPEG
用C语言如何对img文件进行操作
开发操作系统语言的选择?
大家帮我推荐些在linux下用c语言对数据库操作编程的实例或资料吧!谢谢!
请问LINUX下怎么用C语言对文件进行操作(包括新建、读取、删除、修改)
C语言编程——操作系统中的文件管理!
请各位推荐几本UNIX下C语言编程学习的书!!(电子书籍也可)最好能详细介绍文件操作的!!!万分感谢!!!
c语言文件读写示例(c语言文件操作)
用C语言在linux操作系统下编写MSN的客户端
怎样在c语言的代码里内嵌的操作oracle数据库,各位大虾谢谢了
我想写一个简单的操作系统,能不能推荐一下有关这方面的书?最好是C语言的
C语言操作数据库的一个小问题
C语言安全编码之数值中的sizeof操作符
代码如下:
/* 对单链表进行排序处理*/
struct LNode *sort(struct LNode *head)
{
LinkList *p;
int n,i,j;
int temp;
n = ListLength(head);
if(head == NULL || head->next == NULL)
return head;
p = head->next;
for(j =1;jnext;
for( i =0;idata > p->next->data)
{
temp = p->data;
p->data = p->next->data;
p->next->data = temp;
}
p = p->next;
}
}
return head;
}
/*对单链表进行逆置*/
LinkList *reverse(LinkList *head)
{
LinkList *p1,*p2 = NULL,*p3 = NULL;
if(head == NULL || head->next == NULL)
return head;
p1 = head->next;
while(p1!=NULL)
{
p3 = p1->next;
p1->next = p2;
p2 = p1;
p1 = p3;
}
head->next = p2;
// head = p2;
return head;
}
Status equal(ElemType c1,ElemType c2)
{
if(c1== c2)
return TRUE;
else
return FALSE;
}
/*将所有在线性表Lb中但不在La中的数据元素插入到La 中*/
void Union(LinkList *La,LinkList *Lb)
{
ElemType *e;
int La_len,Lb_len;
int i;
La_len = ListLength(La);
Lb_len = ListLength(Lb);
for(i=1;inext;
p = p->next->next;
}
return mid;
}
下面主要是单链表的一个测试的程序。
代码如下:
Status comp(ElemType c1,ElemType c2)
{
if(c1==c2)
return TRUE;
else
return FALSE;
}
void visit(ElemType c)
{
printf("%4d",c);
}
void main()
{
LinkList *L;
LinkList *mid;
mid = (struct LNode *)malloc(sizeof(struct LNode));
ElemType *e,e0,*e1;
Status i;
int j,k;
e = (ElemType *)malloc(sizeof(ElemType));
e1 = (ElemType *)malloc(sizeof(ElemType));
i = InitList(&L);
for(j=1;jdata);
printf("L逆置后的输出:L=");
ListTraverse(reverse(L),visit);
printf("L排序后依次为:L=");
ListTraverse(sort(L),visit);
i = ListEmpty(L);
printf("L 是否为空:i=%d(1:是,0:否)n",i);
i = ClearList(L);
printf("清空L后:L=");
ListTraverse(L,visit);
i = ListEmpty(L);
printf("L是否为空:i=%dn",i);
for(j=1;j