#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct Lnode
{
ElemType date;
struct Lnode* next;
}*LNode;
LNode InitLnode(void) //初始化链表
{
LNode L;
L = (LNode)malloc(sizeof(struct Lnode));
if(L == NULL)
exit(1);
L->next = NULL; //就是忘了写它,出错n次
return L;
}
/*尾插入元素*/
void Insert(LNode head,ElemType x)
{
struct Lnode *p,*q;
p = head;
q = (LNode)malloc(sizeof(struct Lnode));
if(!q)
{
printf("Out of space\n");
exit(1);
}
q->date = x;
q->next = NULL;
while(p->next != NULL) //带头结点的链表
{
p = p->next;
}
p->next = q;
}
/*输出链表*/
void Print(LNode head)
{
LNode p;
p = head->next;
while(p!=NULL)
{
printf("%d ",p->date);
p = p->next;
}
}
/*删除值相同的多余结点*/
void DeteleTheSame(LNode head)
{
LNode p,q,t,s;
p = head;
p = p->next; //头节点未存放数据
while(p!=NULL)
{
t = p; //t指针保证始终在q指针前一位
for(q = p->next;q != NULL;)
{
s = q
设计在单链表中删除值相同的多余结点的算法
最新推荐文章于 2023-09-08 16:13:11 发布