#include "stdafx.h" #include "stdlib.h" #include<iostream> using namespace std; typedef struct node{ int value; node * next; }* LNode ; int main(int argc, char* argv[]) { LNode Inputlist(); void OutPutList(const LNode head); LNode Converse(LNode head); LNode head =Inputlist(); OutPutList(head); head = Converse(head); OutPutList(head); free(head); return 0; } //链表的反转 LNode Converse(LNode head) { LNode A,B,C; A=head; B=head->next; C=head->next->next; head->next=NULL; while (C!=NULL) { B->next=A; A=B; B=C; C=C->next; } B->next=A; head =B; return head; } //链表输入 输入11结束链表 LNode Inputlist() { LNode head,p; head =(LNode)malloc(sizeof(node)); int a; cin>>a; if(a!=11) { head->value=a; p=head; } else { head=NULL; return head; } cin>>a; while (a!=11) { p->next =(LNode)malloc(sizeof(node)); p->next->value=a; p=p->next; cin>>a; } p->next=NULL; return head; } //链表输出 void OutPutList(const LNode head) { LNode p; p=head; while(p->next!=NULL) { cout<<p->value<<"->"; p=p->next; } cout<<p->value<<endl; } //输入ad sd d 输出ad,sd,d, void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr) { long j = 0; for(long i=0;pInputStr[i]!='\0';i++) { if(pInputStr[i]!=32) { pOutputStr[j]= pInputStr[i]; j++; } else { if(pOutputStr[j-1] != ',') { pOutputStr[j]=','; j++; } } } pOutputStr[j]=','; pOutputStr[j+1]='\0'; } //串的模式匹配 int StrIndex_BF(char *s,char *t) { int i=1,j=1; while (s[i]!='\0' && t[j]!='\0') { if(s[i]==t[j]) { i++; j++; } else { i=i-j+2; j=1; } } if(t[j]=='\0') return i-j; else return 0; } int fn( int n) { if(n==1 || n==2) return 1; return fn(n-1)+2*fn(n-2); } //求和 只含1 和 7 的自然数 int fuc() { int k=0,j=0,m=0; bool s=true; for(int i=0;i<3000;i++) { j=i;s=true; while(j>0) { k=j%10; if(k==7 || k==1) { j=j/10; } else { s=false; break; } } if(s) { m=m+i; } } return m; }