帮我写一个用c++基于链式存储结构图书信息表各项操作
时间: 2024-05-29 20:09:01 浏览: 95
C++图书信息管理系统(使用链表写的)
好的,下面是基于链式存储结构的图书信息表基本操作:
1. 初始化操作
void InitList(LNode *&L)
{
L = (LNode*)malloc(sizeof(LNode));
L->next = NULL;
}
2. 插入操作
bool ListInsert(LNode *&L, int i, Book b)
{
LNode *p, *s;
int j = 0;
p = L;
while (p && j < i - 1)
{
p = p->next;
j++;
}
if (!p || j > i - 1)
return false;
s = (LNode*)malloc(sizeof(LNode));
s->data = b;
s->next = p->next;
p->next = s;
return true;
}
3. 删除操作
bool ListDelete(LNode *&L, int i)
{
LNode *p, *q;
int j = 0;
p = L;
while (p->next && j < i - 1)
{
p = p->next;
j++;
}
if (!(p->next) || j > i - 1)
return false;
q = p->next;
p->next = q->next;
free(q);
return true;
}
4. 查找操作
LNode* GetElem(LNode *L, int i)
{
int j = 1;
LNode *p = L->next;
if (i == 0)
return L;
if (i < 1)
return NULL;
while (p && j < i)
{
p = p->next;
j++;
}
return p;
}
5. 输出操作
void PrintList(LNode *L)
{
LNode *p = L->next;
while (p)
{
printf("编号:%d 书名:%s 作者:%s\n", p->data.BookID, p->data.BookName, p->data.Author);
p = p->next;
}
}
希望能够帮到您!
阅读全文