| 
       1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      26 
      27 
      28 
      29 
      30 
      31 
      32 
      33 
      34 
      35 
      36 
      37 
      38 
      39 
      40 
      41 
      42 
      43 
      44 
      45 
      46 
      47 
      48 
      49 
      50 
      51 
      52 
      53 
      54 
      55 
      56 
      57 
      58 
      59 
      60 
      61 
      62 
      63 
      64 
      65 
      66 
      67 
      68 
      69 
      70 
      71 
      72 
      73 
      74 
      75 
      76 
      77 
      78 
      79 
      80 
      81 
      82 
      83 
      84 
      85 
      86 
      87 
      88 
      89 
      90 
      91 
      92 
      93 
      94 
      95 
      96 
      97 
      98 
      99 
      100 
      101 
      102 
      103 
      104 
      105 
      106 
      107 
      108 
      109 
      110 
      111 
      112  | 
    
      #include <iostream>using 
namespace std;struct 
Node{    Node *next;    int 
elem;};void 
creatList(Node* &head){    head = new 
Node;    int 
elem;    cin>>elem;    head->elem = elem;    Node *p = head;    while(cin>>elem&&elem)    {        Node *q = new 
Node;        q->elem = elem;        p->next = q;        p = p->next;    }    p->next = NULL;}void 
printList(Node* &head){    cout<<head->elem<<" ";    Node *p = head->next;    while(p)    {        cout<<p->elem<<" ";        p = p->next;    }    cout<<endl;}void 
removeX(Node* &head,int 
x){    Node *p;    if(head == NULL)        return;    else 
if(head->elem == x)    {        p = head;        head = head->next;        free(p);        removeX(head, x);    }    else        removeX(head->next, x);}Node* getElem(Node* head,int 
i){    int 
j = 1;    Node *p = head;    if(head==NULL)        return 
head;    while(p&&j<i)    {        j++;        p = p->next;    }    return 
p;}void 
insertNode(Node* &head,int 
i,int data){    Node* p = getElem(head, i-1);    Node* q = new 
Node;    q->elem = data;    q ->next = p ->next;    p ->next = q;}void 
deleteNode(Node* &head,int 
i){    Node* p = getElem(head, i-1);    Node* q = p->next;    p->next = q->next;    free(q);}void 
reverseList(Node* &head){    if(head == NULL||head ->next == NULL)        return 
;    Node *pre = head;    Node *cur = head->next;    Node *nex = NULL;    while(cur)    {        nex = cur -> next;        cur ->next = pre;        pre = cur;        cur = nex;    }    head->next = NULL;    head = pre;}int 
main(){    Node *p;    creatList(p);    printList(p);    //removeX(p, 4);    insertNode(p, 2, 100);    printList(p);    cout<<getElem(p, 3)->elem<<endl;    deleteNode(p, 2);    printList(p);    reverseList(p);    printList(p);    return 
0;} | 
原文地址:http://www.cnblogs.com/cliviazhou/p/3777510.html