一、知道个数的反序链表,用头插入的方法创建。
具体实现是,先定义一个node*head=0;然后new一个节点(p=new node),将新的节点的next指向head,最后再让新new的节点的头挂到head上(head=p).
#include <vector>
#include <list>
#include <map>
#include <set>
#include <string.h>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
#define LL long long
#define pi acos(-1)
#define N 5000
#define INF 999999999
#define eps 1e-8
/*形成反序列链表
*/
struct node {
int num;
node* next;
};
node* create(int n) {
node* p, * head;
head = 0;
for (int i = 0; i < n; i++) {
p = new node;
cin >> p->num;
p->next = head;
head = p;
}
return head;
}
int main()
{
node* head = 0;
int n;
cout << "请输入要创建的节点的个数:";
cin >> n;
cout << endl;
head = create(n);
while (head != 0) {
cout << head->num << " " ;
head = head->next;
}
return 0;
}