链表使用

 1 //倒序输出
 2 #include<iostream>
 3 using namespace std;
 4 struct node{
 5     int data;
 6     node*next;
 7 };
 8 
 9 node*header()
10 {
11     node *head, *n;
12     int a;
13     head = NULL;
14     cout << "首节点插入法产生链表,输入数据(-1结束):" << endl;
15 
16     for (cin >> a; a != -1; cin >> a)
17     {
18         n = new node;
19         n->data = a;
20         if (!head)
21             head = n, n->next = NULL;
22         else 
23             n->next = head, head = n;
24     }
25     return head;
26 }
27 int va(node *head)
28 {
29     node *a, *b;
30     a = head;
31     b = head->next;
32 
33     for (; b != NULL; a = a->next, b = b->next)
34     {
35         if (a->data > b->data)
36             return 0;
37     }
38     return 1;
39 }
40 
41 int main()
42 {
43     node *p1;
44     p1 = header();
45     node *cp = p1;//先弄个副本,p1指针要始终指向人为的head,这样循环完内存都不能回收了已经没有指针指向申请的那段内存了.head始终指向当前节点, 也就是最后申请的一个
46     while (cp)
47     {
48         cout << cp->data << "  ";
49         cp = cp->next;
50     }
51     if (va(p1) == 1)
52         cout << "递增单链表元素!" << endl;
53     else cout << "非递增单链表元素!" << endl;
54     system("pause");
55     return 0;
56 }

 

posted @ 2013-09-26 16:32  herizai007  阅读(194)  评论(0编辑  收藏  举报