![]() |
#2
Susake2013-07-28 20:12
![]() #include <stdio.h> #include <malloc.h> #include <time.h> int h; typedef struct LNode { int data; struct LNode *next; }*LinkList; void InitLinkList(LinkList &L) { L = (LinkList)malloc(sizeof(LNode)); L -> next = NULL; } void createLinkList(LinkList &L) { LNode *p, *r = L; for(int i = 0; i < 13; i++) { p = (LNode *)malloc(sizeof(LNode)); p -> data = i + 1; r -> next = p; r = p; } r -> next = NULL; } void insertLinkList(LinkList &L) { LNode *r = L -> next, *p; while(r -> next) r = r -> next; p = (LNode *)malloc(sizeof(LNode)); p -> data = h; r -> next = p; r = p; r -> next = NULL; } void deleteLinkList(LinkList &L, int m) { LNode *p, *r = L; int i = 0; while(i < m) { i++; p = r; r = r -> next; h = r -> data; } p -> next = r -> next; } void outputLinkList(LinkList L) { LNode *p = L -> next; while(p) { printf("%d ", p -> data); p = p -> next; } puts(""); } void destoryLinkList(LinkList &L) { free(L); L -> next = NULL; } int main() { int n = 5, m, t = 13; LinkList L; InitLinkList(L); createLinkList(L); while(n--) { srand(time(0)); m = (rand() % t--) + 1; deleteLinkList(L, m); insertLinkList(L); outputLinkList(L); } destoryLinkList(L); return 0; } 速结..睡觉去..! [ 本帖最后由 Susake 于 2013-7-28 20:13 编辑 ] |
1.给下列数据赋值c(1),c(2),c(3),c(4),c(5),c(6),c(7),c(8),c(9),c(10),c(11),c(12),c(13),好做
2.取随机数n=int(rand()*13)+1,例如n=6
3.调整后的顺序为c(1),c(2),c(3),c(4),c(5),c(7),c(8),c(9),c(10),c(11),c(12),c(13),c(6)
第6个数移到最后,c(7),c(8),c(9),c(10),c(11),c(12),c(13),各前移1个位置。
4.再取随机数n=int(rand()*12)+1,例如n=3
5.上面的顺序调整后的顺序为c(1),c(2),c(4),c(5),c(7),c(8),c(9),c(10),c(11),c(12),c(13),c(3),c(6)
第三个数移到倒数第2的位置,第4、5、6、、、11个数个向前移动一个位置。
6.再取随机数n=int(rand()*11)+1,例如n=5
7.再调整后的顺序为c(1),c(2),c(4),c(5),c(8),c(9),c(10),c(11),c(12),c(13),c(7),c(3),c(6)
8.、、、、、
9.、、
连续操作5次,怎么办?各位老师出手谢谢