C语言编程:26个英文字母建立单链表,可插入删除查找和求长度
C语言编程:26个英文字母建立单链表,可插入删除查找和求长度
参考答案:#include<stdio.h>
#include<malloc.h>
typedef struct LNode
{char character;
struct LNode*next;
}LNode,*PLNode;
PLNode CreateList()/*创建单链表*/
{PLNode P,head,q;
int i;
head=(PLNode)malloc(sizeof(LNode));
p=head;
p->next=NULL;
for(i=0;i<26;i++)
{q=(PLNode)malloc(sizeof(LNode));
q->character='a'+i;
q->next=NULL;
p->next=q;
p=q;
}
return PLNode;
}
int Length(PLNode head)/*求长度*/
{int n=0;
PLNode p;
p=head->next;
while(p)
{n++;
p=p->next;
}
return n;
}
voie Insert(PLNode head,int position,char chr)/*插入到第i的位置*/
{int i;
PNLode p,q;
if(Length(head)+1<position)
{printf("你要插入的位置不存在!");
exit(0);
}
else
{p=head;
i=0;
while(i<position-1)
{p=p->next;
i++;
}
q=(PLNode)malloc(sizeof(LNode));
q->character=chr;
q->next=p->next;
p->next=q;
}
}
void Delete(PLNode head,int n)/*删除第n个位置的接点*/
{int i;
PNLode p,q;
if(Length(head)+1<position)
{printf("你要插入的位置不存在!");
exit(0);
}
else
{p=head;
i=0;
while(i<n-1)
{p=p->next;
i++;
}
p->next=p->next->next;
}
}