/头插法
LinkList *CreateListF(){
char ch;
LinkList *head=NULL;
while((ch=getchar())!='#'){
LinkList s=(LinkList )malloc(sizeof(LinkList));
s->data=ch;
s->next=head;
head=s;
}
return head;
}
//尾插法
LinkList *CreateListR(){
char ch;
LinkList *head=NULL,*s,r=NULL;
while((ch=gether())!='#'){
s=(LinkList )malloc(sizeof(LinkList));
s-data=ch;
if(head==NULL){
head=s;
}else{
r->next=s;
}
r=s;
}
if(r!=NULL) r->next=NULL;
return head;
}
//头结点尾插法
LinkList *CreatList(){
char ch;
LinkList head=(LinkList )malloc(sizeof(LinkList));
LinkList *r=head,s;
while((ch=gether())!='#'){
s=(LinkList )malloc(sizeof(LinkList));
s->data=ch;
r->next=s;
r=s;
}
r->next=NULL;
return head;
}
//顺序栈
#define MAXSIZE 1020
typedef int Datatype;
typedef struct{
Datatype data[MAXSIZE];
int Top;
}SequenStack;
//链栈
typedef int Datatype;
typedef struct node{
Datatype element;
struct node *next;
}LinkList;
LinkList *Top;
//fibonacci递归
int Fib(int n){
if(n0) return 0;
if(n1) return 1;
return Fib(n-1)+Fib(n-2);
}
//优化
int FibDP(int n){
if(n<=) return n;
int dp[n-1];
dp[0]=0;
dp[1]=1;
for(int i=2;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2];
}
rerurn dp[n]
}