#include
using namespace std;
struct node
{
struct node* head;
int date;
struct node* later;
};
struct node* headnode()//创建表头
{
struct node* head = new struct node;
head->head = head;
head->later = head;
return head;
}
//节点
struct node* headnode(int dat)
{
struct node* headnode = new struct node;
headnode->date = dat;
headnode->head = NULL;
headnode->later = NULL;
return headnode;
}
//
void print(struct nodehead,int date)//头插法
{
struct node newhead = headnode(date);
newhead->head = head;
newhead->later = head->later;
head->later->head = newhead;
newhead->later = newhead;
}
void printf(struct node* head)//打印
{
struct node* newnode = head->later;
while(newnode != head)
{
cout << newnode->date << endl;
newnode = newnode->head;
}
}
int main()
{
struct node* head = headnode();
print(head, 44);
print(head, 33);
print(head, 22);
printf(head);
cout << "真的好难" << endl;
system("pause");
return 0;
}
你要的头插法是往前插吗?代码修改如下:如有帮助,请采纳一下,谢谢。
#include <iostream>
using namespace std;
struct node
{
struct node* head;
int date;
struct node* later;
};
struct node* headnode()//创建表头
{
struct node* head = new struct node;
head->head = 0;
head->later = 0;
return head;
}
//节点
struct node* headnode(int dat)
{
struct node* headnode = new struct node;
headnode->date = dat;
headnode->head = NULL;
headnode->later = NULL;
return headnode;
}
//
void print(struct node* head ,int date)//头插法
{
struct node* newhead = headnode(date);
newhead->head = head;
newhead->later = head->later;
if(head->later)
head->later->head = newhead;
head->later = newhead;
//newhead->later = newhead;
}
void printf(struct node* head)//打印
{
struct node* newnode = head->later;
while(newnode != 0)
{
cout << newnode->date << endl;
newnode = newnode->later;
}
}
int main()
{
struct node* head = headnode();
print(head, 44);
print(head, 33);
print(head, 22);
printf(head);
cout << "真的好难" << endl;
system("pause");
return 0;
}