实验内容:
1.建立单链表,并在单链表上实现插入、删除和查找操作(验证性内容)。
2.建立单循环链表,并在该链表上实现插入、删除和查找操作(设计性内容)。
3.计算已知一个单链表中数据域值为一个指定值x的结点个数(应用性设计内容)。
单链表:
#include"stdio.h"
#include"stdlib.h"
typedef int ElemType;
typedef struct LNode{
ElemType data;// 数据域
struct LNode *next;//指针域
}LNode,*LinkList;
//生成1节点
LNode *CreateNode(ElemType e){
LNode *NewNode = (LNode*)malloc(sizeof(LNode));
NewNode->data = e;
NewNode->next = NULL;
return NewNode;
}
//1. 初始化头结点
LinkList LinkList_Init(){
return CreateNode(0);
}
//2.查找节点
LNode *FindNodeByValue(LinkList L,ElemType e){
LNode *p = L->next;
while(p!=NULL){
if(p->data==e) return p;
p=p->next;
}
return NULL;
}
// 3.输出
void OutPut(LinkList L){
LNode *p = L->next;
while(p!=NULL){
printf("%d\t",p->data);
p=p->next;
}
printf("\n");
}
//插入
void LinkList_Insert(LinkList L,LNode *CurNode,LNode *NewNode){
LNode *p = CurNode;
if(NewNode == NULL) return;
if(CurNode == NULL){
p=L;
while(p->next!=NULL){
p=p->next;
}
}
NewNode->next = p->next;
p->next = NewNode;
L->data++;
}
//删除e
void LinkList_D