创建链表的结构体
typedef struct LinkNode{
char data;
struct LinkNode *next;
}LNode,*LinkList;
建立头节点
LinkList intLinkList(){
LinkList tempHead=(LinkList)malloc(sizeof(LNode));
tempHead->data='\0';
tempHead->next=NULL;
return tempHead;
}
打印链表
void printList(LinkList paraList){
LinkList p=paraList->next;
while(p!=NULL){
printf("%c",p->data);
p=p->next;
}
printf("\r\n");
}
尾插发插入元素
void appendElement(LinkList paraHead,char paraChar){
LinkList p,q;
q=(LinkList)malloc(sizeof(LNode));
q->data=paraChar;
q->next=NULL;
p=paraHead;
while(p->next!=NULL){
p=p->next
}
p->next=q;
}
指定位置插入元素
void insertElement(LinkList paraHead,char paraChar,int paraPosition){
LinkList p,q;
p=paraHead;
for(int i=0;i<paraPosition;i++){
p=p->next;
if(p==NULL){
printf("The position %d is beyond the scope of the list.",paraPosition);
return;
}
}
q=(LinkList)malloc(sizeof(LNode));
q->data=paraChar;
q->next=p->next;
p->next=q;
}
删除元素
void deleteElement(LinkList paraHead,char paraChar){
LinkList p,q;
p=paraHead;
while(p->next!=NULL && p->next->data!=paraChar){
p=p->next;
}
if(p->next==NULL){
printf("Cannot delete %c",paraChar);
}
q=p->next;
p->next=p->next->next;
free(q);
}