- 创建链表:
book *creat()//创建链表{book *head = NULL,*tail=NULL;int _num;float _price;while (1){cout << "输入书编号:(-1表示输入结束)" << endl;cin >> _num;if (_num >= 0){book *p = new book;p->num = _num;cout << "输入书价格:(-1表示输入结束)" << endl;cin >> _price;p->price = _price;//p->next = NULL;//如果在结构体里没有默认值,就有这句if (head==NULL){head = p;tail = p;}else{tail->next = p;tail = p;}}else if (_num == -1){return head;}else{cout << "输入有误,请重新输入!" << endl;//待写 清理缓存区}}return head;}
- 显示链表:
void Show(book *head)//链表显示{while (head){cout << "图书编号:"<<head->num <<" 图书价格:"<< head->price << endl;head = head->next;}}
- 删除结点
book* Delete(book *head,int num)//(每次删除一个结点)返回头结点的指针,因为如果删除了头结点,就得将删除后的头结点返回出来{book *cur = head;if (head->num==num){head = head->next;delete cur;cout << "操作成功!" << endl;return head;}while (cur->next){if (cur->next->num==num){book *del = cur->next;cur->next = del->next;delete del;cout << "操作成功!" << endl;return head;}else{cur = cur->next;}}cout << "没找到!" << endl;return head;}
- 插入结点
- 尾插法:
book*insert(book *head, int num)//返回头结点 因为有可能插在第一个{book *p = new book,*cur=head;cin >> p->num >> p->price;while (cur->next){cur = cur->next;}cur->next = p;return head;}
- 头插法:
book*insert(book *head, int num)//返回头结点 因为有可能插在第一个{book *p = new book,*cur=head;cin >> p->num >> p->price;head = p;head->next = cur;return head;}
- 中间插法:
book*insert(book *head, int num)//返回头结点 因为有可能插在第一个{book *p = new book,*cur=head;cin >> p->num >> p->price;if (p->num <=head->num)//头部插入{head = p;head->next = cur;return head;}while (1){if (cur->next == NULL)//尾部插入{cur->next = p;return head;}if (cur->next->num>p->num)//中间插入{p->next = cur->next;cur->next = p;return head;}cur = cur->next;}}
- 尾插法:
C++实现简单的链表
最新推荐文章于 2024-03-26 21:07:09 发布