青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

鏈表排序之冒泡、插入、選擇

Posted on 2010-08-20 14:24 David Fang 閱讀(457) 評論(0)  編輯 收藏 引用 所屬分類: 算法點滴
  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 
  4 typedef struct LinkNode{
  5     int val;
  6     struct LinkNode* next;
  7 }LinkNode;
  8 
  9 LinkNode* CreateList(int A[], int count)
 10 {
 11     LinkNode* head = (LinkNode*)malloc(sizeof(LinkNode));
 12     head->val = A[0];
 13     head->next = NULL;
 14 
 15     LinkNode* p = head;
 16     
 17     for (int i = 1; i < count; ++i)
 18     {
 19         p->next = (LinkNode*)malloc(sizeof(LinkNode));
 20         p->next->val = A[i];
 21         p->next->next = NULL;
 22         p = p->next;
 23     }
 24 
 25     return head;
 26 }
 27 
 28 //asscending sort link list 
 29 //
 30 LinkNode* SortLinkListBubble(LinkNode* head)
 31 {
 32     if (NULL == head)
 33     {
 34         return head;
 35     }
 36 
 37     //points to the last, also the bigest value node
 38     LinkNode* lastN = NULL;
 39 
 40     while(true)
 41     {
 42         LinkNode* n = head->next;
 43 
 44         if (n == lastN)
 45         {
 46             break;
 47         }
 48 
 49         if (n->val < head->val)
 50         {
 51             head->next = n->next;
 52             n->next = head;
 53             head = n;
 54         }
 55 
 56         LinkNode* pre = head;
 57         LinkNode* cur = head->next;
 58         LinkNode* tmp;
 59         n = cur->next;
 60 
 61         while(lastN != n)
 62         {
 63             if (n->val < cur->val)
 64             {
 65                 tmp = n->next;
 66                 cur->next = n->next;
 67                 n->next = cur;
 68                 pre->next = n;
 69                 n = tmp;
 70             }
 71             else
 72             {
 73                 n = n->next;
 74             }
 75             pre = pre->next;
 76             cur = cur->next;
 77         }
 78 
 79         lastN = cur;
 80     }
 81 
 82     return head;
 83 }
 84 
 85 LinkNode* SortLinkListInsertion(LinkNode* head)
 86 {
 87     if (NULL == head || NULL == head->next)
 88     {
 89         return head;
 90     }
 91 
 92     LinkNode* r = head->next;
 93     LinkNode* tmp;
 94     head->next = NULL;
 95 
 96     while(NULL != r)
 97     {
 98         if (r->val < head->val)
 99         {
100             tmp = r->next;
101             r->next = head;
102             head = r;
103             r = tmp;
104         }
105         else
106         {
107             LinkNode* p = head;
108             while(NULL != p->next)
109             {
110                 if (r->val >= p->val && r->val <= p->next->val)
111                 {
112                     tmp = r->next;
113                     r->next = p->next;
114                     p->next = r;
115                     r = tmp;
116                     break;
117                 }
118                 else
119                 {
120                     p = p->next;
121                 }
122             }
123 
124             if (NULL == p->next)
125             {
126                 tmp = r->next;
127                 r->next = NULL;
128                 p->next = r;
129                 r = tmp;
130             }
131         }
132     }
133 
134     return head;
135 }
136 
137 LinkNode* SortLinkListSelection(LinkNode* head)
138 {
139     if (NULL == head || NULL == head->next)
140     {
141         return head;
142     }
143 
144     LinkNode* p = NULL;
145     LinkNode* pre = NULL;
146     LinkNode* pmin = NULL;
147     LinkNode* pminpre = NULL;
148     LinkNode* L = NULL;
149     LinkNode* Ltail = NULL;
150 
151     while (NULL != head && NULL != head->next)
152     {
153         pminpre = pmin = head;
154         
155         if (head->val > head->next->val)
156         {
157             pmin = head->next;
158         }
159 
160         pre = head;
161         p = head->next;
162 
163         while(NULL != p)
164         {
165             if (pmin->val > p->val)
166             {
167                 pminpre = pre;
168                 pmin = p;
169             }
170             pre = pre->next;
171             p = p->next;
172         }
173 
174         //delete pmin from original list
175         if (pmin == head)
176         {
177             head = head->next;
178         }
179         else
180         {
181             pminpre->next = pmin->next;
182         }
183 
184         //add it to the new list
185         if (NULL == L)
186         {
187             L = Ltail = pmin;
188             pmin->next = NULL;
189         }
190         else{
191             Ltail->next = pmin;
192             Ltail = pmin;
193             pmin->next = NULL;
194         }
195     }
196 
197     //do not forget the last node
198 
199     Ltail->next = head;
200     return L;
201 }
202 
203 void ShowList(LinkNode* L)
204 {
205     LinkNode* p = L;
206     printf("%d", p->val);
207 
208     while(p->next)
209     {
210         p = p->next;
211         printf("-->%d", p->val);
212     }
213 
214     printf("\n");
215 }
216 
217 int main(int argc, char *argv[])
218 {
219     //int A[] = {3, 6, 9, 8, 5, 2, 1, 4, 7, 0};
220     int A[] = {3698321276};
221     
222     LinkNode* L = CreateList(A, 10);
223 
224     ShowList(L);
225 
226     //L = SortLinkListInsertion(L);
227 
228     //L = SortLinkListBubble(L);
229 
230     L = SortLinkListSelection(L);
231 
232     ShowList(L);
233 
234     return 0;
235 }
    寫得有點混亂,有點像C又有點像C++,權當參考吧

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


posts - 9, comments - 13, trackbacks - 0, articles - 0

Copyright © David Fang

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区高清| 亚洲午夜久久久久久久久电影院| 激情文学一区| 欧美国产先锋| 欧美va天堂在线| 久久精品国产欧美激情 | 久久精品国产一区二区电影| 国产精品成人一区二区三区夜夜夜 | 亚洲日本va午夜在线影院| 久久综合狠狠综合久久激情| 久久视频精品在线| 欧美激情视频网站| 日韩视频精品在线| 欧美中文字幕第一页| 麻豆av一区二区三区久久| 欧美日韩一区二区视频在线观看| 国产精品乱码久久久久久| 狠狠色香婷婷久久亚洲精品| 99视频超级精品| 欧美伊人久久| 欧美国产亚洲精品久久久8v| av成人天堂| 麻豆国产精品777777在线| 国产精品v欧美精品v日韩| 在线看片一区| 欧美在线三级| 日韩视频三区| 久久精品国产欧美激情| 欧美国产日韩二区| 国产一区二区视频在线观看| av不卡在线| 美女网站久久| 羞羞视频在线观看欧美| 欧美黑人多人双交| 1024成人| 久久嫩草精品久久久久| 亚洲图片自拍偷拍| 欧美精品国产精品| 在线国产精品播放| 欧美在线一二三| 亚洲精品欧美精品| 久久久久久午夜| 国产精品美女久久久久av超清| 亚洲国产成人在线视频| 欧美亚洲综合另类| 欧美韩日亚洲| 一本色道久久综合亚洲91| 久久人91精品久久久久久不卡| 国产精品欧美激情| 午夜精品在线视频| 亚洲一区二区三区高清| 欧美日韩直播| 亚洲天堂免费观看| 亚洲激情二区| 美日韩精品视频免费看| 亚洲福利久久| 欧美激情一二三区| 欧美激情中文字幕乱码免费| 亚洲三级色网| 亚洲黄色精品| 欧美成人a∨高清免费观看| 亚洲高清在线| 亚洲欧洲在线一区| 一区二区精品在线观看| 欧美精品电影| 亚洲一区二区三区视频播放| 日韩一区二区福利| 国产精品久久久久久久久久尿 | 一区二区三区日韩精品视频| 欧美激情一区二区三区四区| 亚洲精品一品区二品区三品区| 亚洲国产1区| 欧美日韩免费一区| 亚洲欧美资源在线| 亚洲欧美在线免费观看| 国产真实精品久久二三区| 久久亚洲美女| 欧美激情精品久久久久久黑人| 99精品视频免费| 在线亚洲欧美视频| 国产一区二区精品丝袜| 欧美激情精品久久久六区热门| 欧美国产亚洲视频| 亚洲欧美激情视频在线观看一区二区三区| 在线亚洲一区| 精品成人在线| 91久久视频| 国产精品夜色7777狼人| 久久亚洲风情| 欧美噜噜久久久xxx| 亚洲一区二区三区精品在线| 羞羞视频在线观看欧美| 亚洲精品在线观看视频| 亚洲一级黄色av| 在线看日韩欧美| 亚洲性视频网址| 亚洲国产福利在线| 亚洲一区二区三区在线播放| 亚洲第一精品久久忘忧草社区| 亚洲毛片播放| 韩国三级在线一区| 国产精品99久久不卡二区| 在线日韩av永久免费观看| 亚洲香蕉网站| 亚洲美女尤物影院| 久久久久国产一区二区三区| 亚洲一级黄色片| 欧美国产精品中文字幕| 久久久另类综合| 欧美四级在线| 亚洲激情一区二区| 激情婷婷亚洲| 亚洲制服av| 亚洲欧美精品| 国产精品h在线观看| 亚洲国产精品一区二区www| 国产日韩欧美一区二区三区在线观看| 亚洲精品国产精品国产自| 精品不卡一区| 久久精品综合网| 久久福利一区| 国产精品久久77777| 亚洲黄色一区| 国产精品xxxav免费视频| 99视频在线观看一区三区| 99视频国产精品免费观看| 欧美激情欧美激情在线五月| 久久亚洲综合| 欧美国产一区视频在线观看| 国产视频在线观看一区二区三区 | 最新中文字幕一区二区三区| 日韩一级网站| 国模叶桐国产精品一区| 欧美日韩国产影院| 免费观看久久久4p| 欧美日韩亚洲天堂| 1000部国产精品成人观看| 中日韩美女免费视频网址在线观看 | 亚洲作爱视频| 蜜桃av一区| 一区二区三区在线观看国产| 亚洲韩国日本中文字幕| 亚洲欧美另类综合偷拍| 91久久久久久| 欧美激情精品久久久久久蜜臀| 亚洲裸体在线观看| 亚洲美女电影在线| 欧美一级淫片播放口| 久久久99爱| 欧美激情久久久| 国产精品大片wwwwww| 一区免费观看| 欧美一区观看| 久久精品二区亚洲w码| 亚洲欧洲99久久| 亚洲久久视频| 亚洲欧美日韩电影| 99国产精品国产精品久久| 一区二区三区回区在观看免费视频| 亚洲一区二区毛片| 欧美激情亚洲精品| 久久一区二区精品| 极品尤物一区二区三区| 欧美一级久久久久久久大片| 欧美va亚洲va日韩∨a综合色| 中文一区二区| 国产美女在线精品免费观看| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 一区二区三区日韩精品视频| 欧美一区国产一区| 国产免费观看久久| 亚洲国产日韩欧美一区二区三区| 久久久www成人免费无遮挡大片| 日韩网站在线| 99精品欧美一区| 国产美女精品视频| 午夜视频一区在线观看| 中文在线一区| 国产又爽又黄的激情精品视频| 久久成人亚洲| 开心色5月久久精品| 亚洲三级网站| 性欧美8khd高清极品| 韩国v欧美v日本v亚洲v| 亚洲第一区在线观看| 欧美大尺度在线观看| 一本色道久久88精品综合| 亚洲乱码一区二区| 伊人成人在线| 日韩午夜免费视频| 国产亚洲一本大道中文在线| 欧美在线观看你懂的| 免费在线日韩av| 久久天天躁狠狠躁夜夜爽蜜月| 裸体歌舞表演一区二区| 久久国产精品99久久久久久老狼| 午夜精彩视频在线观看不卡| 国产夜色精品一区二区av| 欧美激情小视频| 亚洲人成7777|