开发工具与关键技术:Visual Studio C++
作者:华境聪
撰写时间:2019/5/15
具体实现要求:
代码实现部分:
#include<iostream>
#include<string>
using namespace std;
struct demo
{
int data;
demo* next;
};
demo* shru()
{
int a;
cin >> a;
demo* head, * q, * p, * s;
head = NULL;
while (a)
{
s = new demo;
s->data = a;
s->next = NULL;
if (head == NULL)
{
head = s;
}
else {
q = head;
p = head->next;
while (p!=NULL)
{
q = p;
p = p->next;
}
q->next = s;
}
cin >> a;
}
return head;
}
void headInsert(demo*& head)
{
int a;
cin >> a;
demo* s = new demo;
s->data = a;
s->next = head;
head = s;
}
void weiInsert(demo*& head)
{
int a;
cin >> a;
demo* p,*s;
s = new demo;
s->data = a;
s->next = NULL;
p = head;
while (p)
{
if (p->next == NULL)
{
s->next = p->next;
p->next = s;
break;
}
p = p->next;
}
}
void qianInsert(demo* head, demo* a)
{
int b;
cin >> b;
demo* s = new demo;
s->data = b;
demo* p, * q;
p = head;
while (p)
{
q = p;
p = p->next;
if (p == a)
{
s->next = p;
q->next = s;
break;
}
}
}
void houInsert(demo* a)
{
int b;
cin >> b;
demo * s;
s = new demo;
s->data = b;
s->next = a->next;
a->next = s;
}
bool demodelete(demo*& head)
{
if (head)
{
demo* s = head;
head = head->next;
}
else {
return false;
}
}
void demodeletea(demo*& head, demo* d)
{
demo* q, * p;
p = head;
while (p->next)
{
q = p;
p = p->next;
if (p == d)
{
q->next = p->next;
delete p;
break;
}
}
}
void show(demo* head)
{
while (head)
{
cout << head->data << "\t";
head = head->next;
}
}
int main()
{
demo* head = shru();
headInsert(head);
weiInsert(head);
qianInsert(head,head->next);
houInsert(head->next);
demodelete(head);
demodeletea(head, head->next);
show(head);
}