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

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

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++,權當參考吧

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   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>
            亚洲一区二区三区色| 亚洲国产影院| 亚洲乱码视频| 久久久久免费观看| 日韩亚洲欧美成人| 亚洲影音先锋| 国产精品白丝av嫩草影院| 国产一区二区中文| 亚洲女同同性videoxma| 一本久久综合亚洲鲁鲁五月天| 久久久久9999亚洲精品| 国产精品美女xx| 久久狠狠亚洲综合| 国产精品a久久久久久| 亚洲精品影视| 亚洲激情亚洲| 另类亚洲自拍| 最新日韩精品| 亚洲经典在线看| 欧美jizzhd精品欧美巨大免费| 在线成人激情黄色| 男人的天堂亚洲在线| 欧美一区二区成人6969| 国产欧美日韩精品专区| 久久久国际精品| 久久丁香综合五月国产三级网站| 国产婷婷精品| 美女爽到呻吟久久久久| 免费观看国产成人| 日韩视频久久| 99re国产精品| 国产拍揄自揄精品视频麻豆| 久久久久久尹人网香蕉| 狂野欧美一区| 一区二区三区欧美视频| 9国产精品视频| 国产午夜一区二区三区| 免费观看日韩| 欧美日韩亚洲三区| 午夜精品久久久久久久99热浪潮| 亚洲自拍16p| 精品不卡视频| 亚洲黄网站黄| 国产伦理一区| 亚洲成人在线视频播放 | 依依成人综合视频| 亚洲第一中文字幕在线观看| 欧美极品在线视频| 欧美一区二区三区四区夜夜大片 | 韩日欧美一区二区| 欧美不卡在线| 国产精品高潮呻吟视频| 久久亚洲精品视频| 欧美精品激情在线观看| 欧美一区精品| 欧美片在线播放| 久久久久久久一区二区| 国产精品美女视频网站| 亚洲精品在线免费观看视频| 夜夜嗨av一区二区三区四区| 狠狠操狠狠色综合网| 亚洲人成在线观看| 国内精品伊人久久久久av一坑| 亚洲激情网站| 国产综合在线看| av成人免费在线观看| 在线精品亚洲| 亚洲欧美自拍偷拍| 中文一区二区在线观看| 久久天堂精品| 欧美主播一区二区三区| 欧美久久久久免费| 久久亚洲国产精品一区二区| 国产精品裸体一区二区三区| 亚洲国产精品第一区二区| 国产一区二区三区日韩| 一区二区三区成人| 99视频精品在线| 久久噜噜亚洲综合| 久久精品亚洲一区| 国产精品任我爽爆在线播放| 日韩亚洲视频在线| 99re66热这里只有精品3直播| 久久精品人人做人人综合| 欧美一区二区三区四区在线观看| 欧美噜噜久久久xxx| 亚洲精品美女在线观看| 久久精品视频导航| 久久久亚洲国产天美传媒修理工| 国产精品毛片| 日韩视频三区| 一区二区电影免费在线观看| 欧美精品播放| 亚洲欧洲精品一区二区三区不卡| 亚洲国产高潮在线观看| 久久久成人精品| 蜜臀a∨国产成人精品| 精品99一区二区| 麻豆精品视频在线| 榴莲视频成人在线观看| 黄色成人片子| 巨乳诱惑日韩免费av| 模特精品裸拍一区| 在线看欧美视频| 久久久久久亚洲精品中文字幕| 欧美一区二区三区另类| 国产一区二区三区在线观看免费 | 久久久久久高潮国产精品视| 美国十次成人| 亚洲黄色毛片| 欧美精品在线看| 99国产精品久久久久久久成人热| 在线中文字幕一区| 国产乱码精品一区二区三区不卡| 性欧美暴力猛交另类hd| 久久免费视频观看| 精品电影一区| 欧美精品在线观看一区二区| 亚洲自拍偷拍网址| 久久三级视频| 亚洲精品一区二区在线观看| 欧美日韩精品久久| 亚洲一区视频在线观看视频| 亚洲欧美成aⅴ人在线观看| 亚洲已满18点击进入久久| 久久久久国产一区二区三区| 免费成人激情视频| 欧美三日本三级少妇三2023 | 夜夜嗨av一区二区三区中文字幕| 久久精品国产一区二区三区免费看| 久久精品夜色噜噜亚洲a∨| 国产欧美日韩在线视频| 老鸭窝91久久精品色噜噜导演| 亚洲精选在线观看| 欧美在线观看视频在线| 亚洲欧洲日韩综合二区| 国产精品区一区二区三| 免费不卡在线观看av| 在线亚洲欧美视频| 麻豆成人小视频| 宅男精品视频| 伊人久久婷婷| 国产精品国码视频| 欧美1区3d| 欧美在线观看网站| 亚洲国产经典视频| 久久av资源网站| 日韩亚洲精品视频| 国产一区视频网站| 欧美体内she精视频| 免费观看在线综合色| 亚洲自拍偷拍麻豆| 一区二区三区三区在线| 欧美国产一区二区在线观看| 欧美一级视频一区二区| 一区二区日韩欧美| 在线日韩欧美视频| 国产日韩欧美综合| 国产精品扒开腿做爽爽爽软件| 欧美电影免费观看| 久久亚洲美女| 久久国产精品一区二区| 一区二区三区四区蜜桃| 亚洲人妖在线| 亚洲国产精品99久久久久久久久| 久久婷婷亚洲| 久久久久久久一区| 欧美一区激情| 欧美淫片网站| 欧美亚洲一区二区在线观看| 亚洲视频在线观看网站| 99视频一区| 国产日韩欧美在线视频观看| 欧美香蕉视频| 欧美婷婷在线| 欧美日韩美女一区二区| 欧美精品在线视频观看| 欧美激情精品久久久六区热门| 久久米奇亚洲| 久久亚洲私人国产精品va媚药| 欧美专区18| 久久精品二区三区| 久久久青草青青国产亚洲免观| 香蕉久久夜色精品国产使用方法| 亚洲一区网站| 亚洲欧美影音先锋| 性色av一区二区三区红粉影视| 亚洲一区国产一区| 亚洲欧美成人一区二区在线电影 | 欧美成人一区二区三区| 免费成人高清在线视频| 欧美日韩精品一区二区天天拍小说| 亚洲美女精品久久| 99国产精品久久久久久久| 国内视频一区| 久久久免费观看视频| 老牛影视一区二区三区| 国产三区精品| 亚洲女人天堂av| 日韩视频在线观看|