链表部分函数
//创造链表
Data* createData() {
Data* head = new Data;
head->next = NULL;
return head;
}
//判断是否为空
bool emptyData(Data* head) {
if (head->next == NULL)
return true;
else
return false;
}
//删除链表
void deleteData(Data* head) {
Data* L;
Data* H;
L = head;
while (L==NULL)
{
H = L->next;
delete L;
L = H;
}
}
//清空链表
void clearData(Data* head) {
if (emptyData(head))
return;
else {
Data* P = head->next;
deleteData(P);
}
}
//计算链表长度
int lengthData(Data* head) {
if (head == NULL)
return -1;
Data* L = head;
int number = 0;
while (L->next!=NULL)
{
number++;
L = L->next;
}
}
//取值
int getData(Data* head, int i) {
int n = 0;
if (head == NULL)
return;
Data* L = head;
while (L->next!=NULL&&n!=i)
{
n++;
L = L->next;
}
if (n == i)
return L->d;
else
return;
}
//前插元素
void frontinsterData(Data* head,int n) {
if (head == NULL)
return;
Data* P = new Data;
P->d = n;
P->next = head->next;
head->next = P;
}
//后插元素
void endinsterData(Data* head, int n) {
if (head == NULL)
return;
Data* P = new Data;
P->d = n;
Data* L;
L = head;
while (L->next != NULL) {
L = L->next;
}
L->next = P;
}