#include
#include
typedef struct _chainchain;
void creat_chain(chain *phead,int s,int len)
p->next = null;//last to null
}void print_chain(const chain *head)
printf("end/n");
printf("共%d/n",head->ndata);
}void move_least_to_head(chain *head)
prevofp = p;
p = p->next;
}if(prevofleast == head) return;
prevofleast->next = least->next;
least->next = head->next;
head->next = least;
}void free_chain(chain *head)
}void main()
;int len = sizeof(s)/sizeof(s[0]);
chain head;
head.ndata = 0;
creat_chain(&head,s,len);
print_chain(&head);
move_least_to_head(&head);
print_chain(&head);
free_chain(&head);
getchar();
}
遞迴查詢乙個序列的最大最小值
這個問題在群裡看到的,提問的人伐已經有偽 了,但是他沒理解,以及不知道怎麼用c的 去編寫 他的複試只能使用c 看了一下偽 這個問題的解法是這樣 有點類似於快排 把序列分成兩塊 二分 比較兩塊區間中的最大最小值,這裡就開始遞迴呼叫得到每個區間的最大最小值。其中 當區間劃分直至只有乙個元素,當前區間最大...
實現乙個返回最小值的棧
一 實現乙個棧,要求實現push 出棧 pop 入棧 min 返回最小值的操作 的時間複雜度為o 1 1 棧的基本操作入棧 push 出棧 pop 查詢棧頂 top 棧的元素個數 size 檢查棧是否為空 empty 我們知道入棧 push 和出棧 pop 時間複雜度本身就為o 1 所以只要讓min...
用棧逆置乙個線性表
include include define stack init size100 define stackincrement10 typedef struct lnodelnode,linklist typedef structsqstack void initlist linklist l vo...