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

xLsDg

Xiao Lu Software Development Group
posts - 8, comments - 1, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

鏈表堆棧隊列

Posted on 2014-07-19 12:22 xLsDg 閱讀(245) 評論(0)  編輯 收藏 引用 所屬分類: 代碼庫
  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 
  4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5 
  6 /***********************************************************************
  7  單向鏈表
  8 ***********************************************************************/
  9 typedef int dataType;
 10 
 11 typedef struct sgNode {
 12     dataType data;
 13     struct sgNode *pNext;
 14 } sgNode;
 15 
 16 typedef sgNode sgLinkList;
 17 
 18 sgLinkList *createSgLinkList( char bHead )
 19 {
 20     sgLinkList *pHead = NULL;
 21     sgNode *pNew = NULL, *pPre = NULL;
 22     dataType data = ( dataType )0;
 23 
 24     if ( NULL == ( pHead = ( sgNode* )malloc( sizeof( sgNode ) ) ) ) {
 25         return NULL;
 26     }
 27 
 28     setbuf( stdin, NULL );
 29 
 30     if ( 0 == bHead ) {
 31         if ( 1 > scanf( "%d", &data ) ) {
 32             free( pHead );
 33             return NULL;
 34         }
 35     }
 36 
 37     pHead->data = data;
 38     pHead->pNext = NULL;
 39     pPre = pHead;
 40 
 41     while ( scanf( "%d", &data ) ) {
 42         if ( NULL == ( pNew = ( sgNode* )malloc( sizeof( sgNode ) ) ) ) {
 43             break;
 44         }
 45 
 46         pPre->pNext = pNew;
 47         pNew->data = data;
 48         pNew->pNext = NULL;
 49         pPre = pNew;
 50     }
 51 
 52     if ( 1 == bHead ) {
 53         if ( NULL == pHead->pNext ) {
 54             free( pHead );
 55             return NULL;
 56         }
 57     }
 58 
 59     return pHead;
 60 }
 61 
 62 void printSgLinkList( char bHead, sgLinkList *pLink )
 63 {
 64     sgNode *pNode = NULL;
 65 
 66     if ( NULL == pLink ) {
 67         return;
 68     }
 69 
 70     if ( 0 == bHead ) {
 71         pNode = pLink;
 72 
 73     } else {
 74         pNode = pLink->pNext;
 75     }
 76 
 77     for ( ; NULL != pNode->pNext; pNode = pNode->pNext ) {
 78         printf( "%d ", pNode->data );
 79     }
 80 
 81     printf( "%d\n", pNode->data );
 82 
 83     return;
 84 }
 85 
 86 int getSgLinkListCount( char bHead, sgLinkList *pLink )
 87 {
 88     int count = 0;
 89     sgNode *pNode = NULL;
 90 
 91     if ( NULL == pLink ) {
 92         return count;
 93     }
 94 
 95     if ( 0 == bHead ) {
 96         pNode = pLink;
 97 
 98     } else {
 99         pNode = pLink->pNext;
100     }
101 
102     for ( ; NULL != pNode; pNode = pNode->pNext ) {
103         count++;
104     }
105 
106     return count;
107 }
108 
109 sgNode *insertNodeIntoSgLinkList( char bHead, sgLinkList *pLink, int position, dataType data )
110 {
111     int count = 0;
112     sgNode *pNode = NULL, *pNew = NULL;
113 
114     if ( NULL == pLink ) {
115         return NULL;
116     }
117 
118     if ( 1 > position ) {
119         return NULL;
120     }
121 
122     if ( 0 == bHead ) {
123         pNode = pLink;
124 
125     } else {
126         pNode = pLink->pNext;
127     }
128 
129     for ( count = 1; count < position - 1; pNode = pNode->pNext ) {
130         if ( NULL != pNode ) {
131             count++;
132 
133         } else {
134             return NULL;
135         }
136     }
137 
138     if ( NULL == ( pNew = ( sgNode* )malloc( sizeof( sgNode ) ) ) ) {
139         return NULL;
140     }
141 
142     pNew->data = data;
143     pNew->pNext = pNode->pNext;
144     pNode->pNext = pNew;
145 
146     return pNew;
147 }
148 
149 void deleteSgLinkListNode( char bHead, sgLinkList *pLink, int position )
150 {
151     int count = 0;
152     sgNode *pNode = NULL, *pOld = NULL;
153 
154     if ( NULL == pLink ) {
155         return;
156     }
157 
158     if ( 1 > position ) {
159         return;
160     }
161 
162     if ( 0 == bHead ) {
163         pNode = pLink;
164 
165     } else {
166         pNode = pLink->pNext;
167     }
168 
169     for ( count = 1; count < position - 1; pNode = pNode->pNext ) {
170         if ( NULL != pNode ) {
171             count++;
172 
173         } else {
174             return;
175         }
176     }
177 
178     pOld = pNode->pNext;
179     pNode->pNext = pOld->pNext;
180     free( pOld );
181 }
182 
183 sgLinkList *reverseSgLinkList( char bHead, sgLinkList *pLink )
184 {
185     sgNode *pFirst = NULL, *pNode = NULL, *pNext = NULL;
186 
187     if ( NULL == pLink ) {
188         return NULL;
189     }
190 
191     if ( 0 == bHead ) {
192         pFirst = pLink;
193 
194     } else {
195         pFirst = pLink->pNext;
196     }
197 
198     pNode = pFirst->pNext;
199     pFirst->pNext = NULL;
200 
201     while ( pNode ) {
202         pNext = pNode->pNext;
203         pNode->pNext = pFirst;
204         pFirst = pNode;
205         pNode = pNext;
206     }
207 
208     if ( 0 == bHead ) {
209         pLink = pFirst;
210 
211     } else {
212         pLink->pNext = pFirst;
213     }
214 
215     return pLink;
216 }
217 
218 sgNode *getBottomOfSgLinkList( char bHead, sgLinkList *pLink, int bottom )
219 {
220     int count = 0;
221     sgNode *pNode = NULL, *pBottom = NULL;
222 
223     if ( NULL == pLink ) {
224         return NULL;
225     }
226 
227     if ( 0 == bHead ) {
228         pNode = pBottom = pLink;
229 
230     } else {
231         pNode = pBottom = pLink->pNext;
232     }
233 
234     while ( pNode ) {
235         count++;
236         if ( bottom < count ) {
237             pBottom = pBottom->pNext;
238         }
239         pNode = pNode->pNext;
240     }
241 
242     if ( bottom > count ) {
243         return NULL;
244     }
245 
246     return pBottom;
247 }
248 
249 sgLinkList *sortSgLinkList( char bHead, sgLinkList *pLink )
250 {
251     sgNode *pFirst = NULL, *pNode = NULL, *pNext = NULL, *pMove = NULL;
252 
253     if ( NULL == pLink ) {
254         return NULL;
255     }
256 
257     if ( 0 == bHead ) {
258         pFirst = pLink;
259 
260     } else {
261         pFirst = pLink->pNext;
262     }
263 
264     pNode = pFirst->pNext;
265     pFirst->pNext = NULL;
266 
267     while ( pNode ) {
268         pNext = pNode->pNext;
269         pMove = pFirst;
270         while ( pMove ) {
271             if ( ( pMove == pFirst ) && ( pNode->data < pMove->data ) ) {
272                 pNode->pNext = pFirst;
273                 pFirst = pNode;
274                 break;
275             }
276 
277             if ( ( pMove->pNext ) && ( pMove->data <= pNode->data ) && ( pNode->data < pMove->pNext->data ) ) {
278                 pNode->pNext = pMove->pNext;
279                 pMove->pNext = pNode;
280                 break;
281             }
282 
283             if ( ( NULL == pMove->pNext ) && ( pMove->data <= pNode->data ) ) {
284                 pNode->pNext = pMove->pNext;
285                 pMove->pNext = pNode;
286                 break;
287             }
288 
289             pMove = pMove->pNext;
290         }
291         pNode = pNext;
292     }
293 
294     if ( 0 == bHead ) {
295         pLink = pFirst;
296 
297     } else {
298         pLink->pNext = pFirst;
299     }
300 
301     return pLink;
302 }
303 
304 
305 
306 
307 /***********************************************************************
308  雙向鏈表
309 ***********************************************************************/
310 typedef struct dbNode {
311     dataType data;
312     struct dbNode *pPrev;
313     struct dbNode *pNext;
314 } dbNode;
315 
316 typedef dbNode dbLinkList;
317 
318 dbLinkList *createDbLinkList( char bHead )
319 {
320     dbLinkList *pHead = NULL;
321     dbNode *pNew = NULL, *pPre = NULL;
322     dataType data = ( dataType )0;
323 
324     if ( NULL == ( pHead = ( dbNode* )malloc( sizeof( dbNode ) ) ) ) {
325         return NULL;
326     }
327 
328     setbuf( stdin, NULL );
329 
330     if ( 0 == bHead ) {
331         if ( 1 > scanf( "%d", &data ) ) {
332             free( pHead );
333             return NULL;
334         }
335     }
336 
337     pHead->data = data;
338     pHead->pPrev = NULL;
339     pHead->pNext = NULL;
340     pPre = pHead;
341 
342     while ( scanf( "%d", &data ) ) {
343         if ( NULL == ( pNew = ( dbNode* )malloc( sizeof( dbNode ) ) ) ) {
344             break;
345         }
346 
347         pPre->pNext = pNew;
348         pNew->data = data;
349         pNew->pPrev = pPre;
350         pNew->pNext = NULL;
351         pPre = pNew;
352     }
353 
354     if ( 1 == bHead ) {
355         if ( NULL == pHead->pNext ) {
356             free( pHead );
357             return NULL;
358         }
359     }
360 
361     return pHead;
362 }
363 
364 void printDbLinkList( char bHead, dbLinkList *pLink )
365 {
366     dbNode *pNode = NULL;
367 
368     if ( NULL == pLink ) {
369         return;
370     }
371 
372     if ( 0 == bHead ) {
373         pNode = pLink;
374 
375     } else {
376         pNode = pLink->pNext;
377     }
378 
379     for ( ; NULL != pNode->pNext; pNode = pNode->pNext ) {
380         printf( "%d ", pNode->data );
381     }
382 
383     printf( "%d\n", pNode->data );
384 
385     return;
386 }
387 
388 void printDbLinkListBack( char bHead, dbLinkList *pLink )
389 {
390     dbNode *pNode = NULL;
391 
392     if ( NULL == pLink ) {
393         return;
394     }
395 
396     if ( 0 == bHead ) {
397         pNode = pLink;
398 
399     } else {
400         pNode = pLink->pNext;
401     }
402 
403     while ( pNode->pNext ) {
404         pNode = pNode->pNext;
405     }
406 
407     for ( ; NULL != pNode->pPrev; pNode = pNode->pPrev ) {
408         printf( "%d ", pNode->data );
409     }
410 
411     if ( 0 == bHead ) {
412         printf( "%d\n", pNode->data );
413 
414     } else {
415         printf( "\n" );
416     }
417 
418     return;
419 }
420 
421 int getDbLinkListCount( char bHead, dbLinkList *pLink )
422 {
423     int count = 0;
424     dbNode *pNode = NULL;
425 
426     if ( NULL == pLink ) {
427         return count;
428     }
429 
430     if ( 0 == bHead ) {
431         pNode = pLink;
432 
433     } else {
434         pNode = pLink->pNext;
435     }
436 
437     for ( ; NULL != pNode; pNode = pNode->pNext ) {
438         count++;
439     }
440 
441     return count;
442 }
443 
444 dbNode *insertNodeIntoDbLinkList( char bHead, dbLinkList *pLink, int position, dataType data )
445 {
446     int count = 0;
447     dbNode *pNode = NULL, *pNew = NULL;
448 
449     if ( NULL == pLink ) {
450         return NULL;
451     }
452 
453     if ( 1 > position ) {
454         return NULL;
455     }
456 
457     if ( 0 == bHead ) {
458         pNode = pLink;
459 
460     } else {
461         pNode = pLink->pNext;
462     }
463 
464     for ( count = 1; count < position - 1; pNode = pNode->pNext ) {
465         if ( NULL != pNode ) {
466             count++;
467 
468         } else {
469             return NULL;
470         }
471     }
472 
473     if ( NULL == ( pNew = ( dbNode* )malloc( sizeof( dbNode ) ) ) ) {
474         return NULL;
475     }
476 
477     pNew->data = data;
478     pNew->pPrev = pNode;
479     pNew->pNext = pNode->pNext;
480     pNode->pNext = pNew;
481     pNew->pNext->pPrev = pNew;
482 
483     return pNew;
484 }
485 
486 void deleteDbLinkListNode( char bHead, dbLinkList *pLink, int position )
487 {
488     int count = 0;
489     dbNode *pNode = NULL, *pOld = NULL;
490 
491     if ( NULL == pLink ) {
492         return;
493     }
494 
495     if ( 1 > position ) {
496         return;
497     }
498 
499     if ( 0 == bHead ) {
500         pNode = pLink;
501 
502     } else {
503         pNode = pLink->pNext;
504     }
505 
506     for ( count = 1; count < position - 1; pNode = pNode->pNext ) {
507         if ( NULL != pNode ) {
508             count++;
509 
510         } else {
511             return;
512         }
513     }
514 
515     pOld = pNode->pNext;
516     pNode->pNext = pOld->pNext;
517     pOld->pNext->pPrev = pNode;
518 
519     free( pOld );
520 }
521 
522 dbLinkList *reverseDbLinkList( char bHead, dbLinkList *pLink )
523 {
524     dbNode *pFirst = NULL, *pNode = NULL, *pNext = NULL;
525 
526     if ( NULL == pLink ) {
527         return NULL;
528     }
529 
530     if ( 0 == bHead ) {
531         pFirst = pLink;
532 
533     } else {
534         pFirst = pLink->pNext;
535     }
536 
537     pNode = pFirst->pNext;
538     pFirst->pPrev = pFirst->pNext;
539     pFirst->pNext = NULL;
540 
541     while ( pNode ) {
542         pNext = pNode->pNext;
543         pNode->pPrev = pNode->pNext;
544         pNode->pNext = pFirst;
545         pFirst = pNode;
546         pNode = pNext;
547     }
548 
549     if ( 0 == bHead ) {
550         pLink = pFirst;
551 
552     } else {
553         pLink->pNext = pFirst;
554         pFirst->pPrev = pLink;
555     }
556 
557     return pLink;
558 }
559 
560 dbLinkList *sortDbLinkList( char bHead, dbLinkList *pLink )
561 {
562     dbNode *pFirst = NULL, *pNode = NULL, *pNext = NULL, *pMove = NULL;
563 
564     if ( NULL == pLink ) {
565         return NULL;
566     }
567 
568     if ( 0 == bHead ) {
569         pFirst = pLink;
570 
571     } else {
572         pFirst = pLink->pNext;
573     }
574 
575     pNode = pFirst->pNext;
576     pFirst->pNext = NULL;
577 
578     while ( pNode ) {
579         pNext = pNode->pNext;
580         pMove = pFirst;
581         while ( pMove ) {
582             if ( ( pMove == pFirst ) && ( pNode->data < pMove->data ) ) {
583                 pNode->pNext = pFirst;
584                 pNode->pPrev = pFirst->pPrev;
585                 pFirst->pPrev = pNode;
586                 pFirst = pNode;
587                 break;
588             }
589 
590             if ( ( pMove->pNext ) && ( pMove->data <= pNode->data ) && ( pNode->data < pMove->pNext->data ) ) {
591                 pNode->pNext = pMove->pNext;
592                 pNode->pPrev = pMove;
593                 pMove->pNext->pPrev = pNode;
594                 pMove->pNext = pNode;
595                 break;
596             }
597 
598             if ( ( NULL == pMove->pNext ) && ( pMove->data <= pNode->data ) ) {
599                 pNode->pNext = pMove->pNext;
600                 pNode->pPrev = pMove;
601                 pMove->pNext = pNode;
602                 break;
603             }
604 
605             pMove = pMove->pNext;
606         }
607         pNode = pNext;
608     }
609 
610     if ( 0 == bHead ) {
611         pLink = pFirst;
612 
613     } else {
614         pLink->pNext = pFirst;
615     }
616 
617     return pLink;
618 }
619 
620 
621 
622 
623 /***********************************************************************
624  鏈棧
625 ***********************************************************************/
626 typedef struct sgStack {
627     sgNode *pTop;
628 } sgStack;
629 
630 sgStack *pushNodeToSgStack( sgStack *pStack, dataType data )
631 {
632     sgNode *pNode = NULL, *pNew = NULL;
633 
634     if ( NULL == pStack ) {
635         return NULL;
636     }
637 
638     if ( NULL == ( pNew = ( sgNode* )malloc( sizeof( sgNode ) ) ) ) {
639         return NULL;
640     }
641 
642     pNew->data = data;
643     pNew->pNext = pStack->pTop;
644     pStack->pTop = pNew;
645 
646     return pStack;
647 }
648 
649 dataType popNodeFromSgStack( sgStack *pStack )
650 {
651     sgNode *pNode = NULL;
652     dataType data = ( dataType )0;
653 
654     if ( NULL == pStack ) {
655         return data;
656     }
657 
658     if ( NULL == pStack->pTop ) {
659         return data;
660     }
661 
662     pNode = pStack->pTop;
663     data = pNode->data;
664     pStack->pTop = pNode->pNext;
665 
666     free( pNode );
667 
668     return data;
669 }
670 
671 sgStack *createSgStack( void )
672 {
673     sgStack *pStack = NULL;
674     dataType data = ( dataType )0;
675 
676     if ( NULL == ( pStack = ( sgStack* )malloc( sizeof( sgStack ) ) ) ) {
677         return NULL;
678     }
679 
680     pStack->pTop = NULL;
681 
682     setbuf( stdin, NULL );
683 
684     while ( scanf( "%d", &data ) ) {
685         pStack = pushNodeToSgStack( pStack, data );
686     }
687 
688     return pStack;
689 }
690 
691 void printSgStack( sgStack *pStack )
692 {
693     if ( NULL == pStack ) {
694         return;
695     }
696 
697     while ( pStack->pTop ) {
698         printf( "%d ", popNodeFromSgStack( pStack ) );
699     }
700 
701     printf( "\n" );
702 
703     return;
704 }
705 
706 
707 
708 
709 /***********************************************************************
710  隊列
711 ***********************************************************************/
712 typedef struct sgQueue {
713     sgNode *pFront;
714     sgNode *pRear;
715 } sgQueue;
716 
717 sgQueue *enSgQueue( sgQueue *pQueue, dataType data )
718 {
719     sgNode *pNode = NULL, *pNew = NULL;
720 
721     if ( NULL == pQueue) {
722         return NULL;
723     }
724 
725     if ( NULL == ( pNew = ( sgNode* )malloc( sizeof( sgNode ) ) ) ) {
726         return NULL;
727     }
728 
729     pNew->data = data;
730     pNew->pNext = NULL;
731 
732     if ( NULL != pQueue->pRear ) {
733         pQueue->pRear->pNext = pNew;
734     }
735 
736     pQueue->pRear = pNew;
737 
738     if ( NULL == pQueue->pFront ) {
739         pQueue->pFront = pNew;
740     }
741 
742     return pQueue;
743 }
744 
745 dataType deSgQueue( sgQueue *pQueue )
746 {
747     sgNode *pNode = NULL;
748     dataType data = ( dataType )0;
749 
750     if ( NULL == pQueue ) {
751         return data;
752     }
753 
754     if ( NULL == pQueue->pFront ) {
755         return data;
756     }
757 
758     pNode = pQueue->pFront;
759     data = pNode->data;
760     pQueue->pFront = pNode->pNext;
761 
762     if ( NULL == pQueue->pFront ) {
763         pQueue->pRear = NULL;
764     }
765 
766     free( pNode );
767 
768     return data;
769 }
770 
771 sgQueue *createSgQueue( void )
772 {
773     sgQueue *pQueue = NULL;
774     dataType data = ( dataType )0;
775 
776     if ( NULL == ( pQueue = ( sgQueue* )malloc( sizeof( sgQueue ) ) ) ) {
777         return NULL;
778     }
779 
780     pQueue->pFront = NULL;
781     pQueue->pRear = NULL;
782 
783     setbuf( stdin, NULL );
784 
785     while ( scanf( "%d", &data ) ) {
786         pQueue = enSgQueue( pQueue, data );
787     }
788 
789     return pQueue;
790 }
791 
792 void printSgQueue( sgQueue *pQueue )
793 {
794     if ( NULL == pQueue ) {
795         return;
796     }
797 
798     while ( pQueue->pFront ) {
799         printf( "%d ", deSgQueue( pQueue ) );
800     }
801 
802     printf( "\n" );
803 
804     return;
805 }
806 
807 
808 
809 
810 int main(int argc, char *argv[])
811 {
812     char bHead = 0;
813     sgLinkList *pSgLinkList = NULL;
814     dbLinkList *pDbLinkList = NULL;
815     sgNode *pSgNode = NULL;
816     dbNode *pDbNode = NULL;
817     sgStack *pStack = NULL;
818     sgQueue *pQueue = NULL;
819 
820     // 單向鏈表
821     printf( "\nPlease input data one by one:\n" );
822     if ( NULL == ( pSgLinkList = createSgLinkList( bHead ) ) ) {
823         printf( "Create sgLinkList fail.\n" );
824         //return 0;
825     }
826 
827     printf( "\nLink data:\n" );
828     printSgLinkList( bHead, pSgLinkList );
829     printf( "\nLink count: %d\n", getSgLinkListCount( bHead, pSgLinkList ) );
830 
831     pSgNode = insertNodeIntoSgLinkList( bHead, pSgLinkList, 2, 2 );
832     printf( "\nLink data:\n" );
833     printSgLinkList( bHead, pSgLinkList );
834     printf( "\nLink count: %d\n", getSgLinkListCount( bHead, pSgLinkList ) );
835 
836     deleteSgLinkListNode( bHead, pSgLinkList, 3 );
837     printf( "\nLink data:\n" );
838     printSgLinkList( bHead, pSgLinkList );
839     printf( "\nLink count: %d\n", getSgLinkListCount( bHead, pSgLinkList ) );
840 
841     pSgLinkList = reverseSgLinkList( bHead, pSgLinkList );
842     printf( "\nLink data:\n" );
843     printSgLinkList( bHead, pSgLinkList );
844     printf( "\nLink count: %d\n", getSgLinkListCount( bHead, pSgLinkList ) );
845 
846     pSgLinkList = sortSgLinkList( bHead, pSgLinkList );
847     printf( "\nLink data:\n" );
848     printSgLinkList( bHead, pSgLinkList );
849     printf( "\nLink count: %d\n", getSgLinkListCount( bHead, pSgLinkList ) );
850 
851     if ( NULL == ( pSgNode = getBottomOfSgLinkList( bHead, pSgLinkList, 3 ) ) ) {
852         printf( "\nNo.%d Node data: NULL\n", 3 );
853 
854     } else {
855         printf( "\nNo.%d Node data: %d\n", 3, pSgNode->data );
856     }
857 
858 
859 
860 
861     // 雙向鏈表
862     printf( "\nPlease input data one by one:\n" );
863     if ( NULL == ( pDbLinkList = createDbLinkList( bHead ) ) ) {
864         printf( "Create dbLinkList fail.\n" );
865         //return 0;
866     }
867 
868     printf( "\nLink data:\n" );
869     printDbLinkList( bHead, pDbLinkList );
870     printDbLinkListBack( bHead, pDbLinkList );
871     printf( "\nLink count: %d\n", getDbLinkListCount( bHead, pDbLinkList ) );
872 
873     pDbNode = insertNodeIntoDbLinkList( bHead, pDbLinkList, 2, 2 );
874     printf( "\nLink data:\n" );
875     printDbLinkList( bHead, pDbLinkList );
876     printDbLinkListBack( bHead, pDbLinkList );
877     printf( "\nLink count: %d\n", getDbLinkListCount( bHead, pDbLinkList ) );
878 
879     deleteDbLinkListNode( bHead, pDbLinkList, 3 );
880     printf( "\nLink data:\n" );
881     printDbLinkList( bHead, pDbLinkList );
882     printDbLinkListBack( bHead, pDbLinkList );
883     printf( "\nLink count: %d\n", getDbLinkListCount( bHead, pDbLinkList ) );
884 
885     pDbLinkList = reverseDbLinkList( bHead, pDbLinkList );
886     printf( "\nLink data:\n" );
887     printDbLinkList( bHead, pDbLinkList );
888     printDbLinkListBack( bHead, pDbLinkList );
889     printf( "\nLink count: %d\n", getDbLinkListCount( bHead, pDbLinkList ) );
890 
891     pDbLinkList = sortDbLinkList( bHead, pDbLinkList );
892     printf( "\nLink data:\n" );
893     printDbLinkList( bHead, pDbLinkList );
894     printDbLinkListBack( bHead, pDbLinkList );
895     printf( "\nLink count: %d\n", getDbLinkListCount( bHead, pDbLinkList ) );
896 
897 
898 
899 
900     // 鏈棧
901     printf( "\nPlease input data one by one:\n" );
902     pStack = createSgStack();
903     printf( "\nStack data:\n" );
904     printSgStack( pStack );
905 
906 
907 
908 
909     // 隊列
910     printf( "\nPlease input data one by one:\n" );
911     pQueue = createSgQueue();
912     printf( "\nQueue data:\n" );
913     printSgQueue( pQueue );
914 
915     return 0;
916 }
917 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲看片一区| 欧美一区二区视频在线观看2020| 欧美专区18| 亚洲国产高清在线| 久久大逼视频| 久久成人国产精品| 欧美成人国产va精品日本一级| 欧美日韩亚洲另类| 亚洲成人在线视频播放| 麻豆精品视频在线| 久久久久久久久久久一区| 国产九色精品成人porny| 一区二区三区精品| 亚洲一区视频| 国产精品九九| 久久成人国产| 欧美激情第三页| 国产麻豆精品在线观看| 一区二区冒白浆视频| 亚洲欧美激情四射在线日| 国产精品制服诱惑| 久久一区二区三区国产精品| 一区二区三区欧美成人| 久久久www成人免费无遮挡大片| 国产精品免费看| 久久久久久久久久看片| 欧美激情亚洲另类| 欧美精品久久一区二区| 亚洲男同1069视频| 欧美成人dvd在线视频| 欧美一区二区精品| 免费观看30秒视频久久| 一本久久综合亚洲鲁鲁| 久久激情视频免费观看| 一本一道久久综合狠狠老精东影业| 国产精品美腿一区在线看| 久久综合狠狠综合久久综青草| 日韩视频不卡中文| 欧美激情视频网站| 欧美先锋影音| 欧美日韩不卡视频| 噜噜噜91成人网| 国产欧美日本| 欧美一区二区三区播放老司机| 99精品国产在热久久| 美女主播视频一区| 欧美刺激午夜性久久久久久久| 国产亚洲欧美日韩美女| 99re6这里只有精品视频在线观看| 国产一区免费视频| 久久综合色播五月| 99国产精品久久| 91久久精品一区| 国内自拍一区| 在线观看久久av| 亚洲第一精品在线| 欧美成人a视频| 麻豆成人精品| 久久精品99| 国产一区在线看| 久久久青草青青国产亚洲免观| 午夜久久黄色| 国产午夜一区二区三区| 久久久久久久波多野高潮日日| 久久综合给合久久狠狠狠97色69| 国产中文一区二区三区| 久久精品国内一区二区三区| 在线观看欧美日本| 国产精品一区免费视频| 欧美午夜不卡影院在线观看完整版免费 | 国产真实乱偷精品视频免| 精品动漫3d一区二区三区免费| 国产日韩一区二区三区在线| 欧美日韩精品一区二区| 亚洲激情av| 中文日韩电影网站| 合欧美一区二区三区| 欧美第一黄网免费网站| 亚洲欧美日韩另类| 亚洲精品影院| 亚洲国产高清自拍| 久久久久久久97| 亚洲一区二区精品在线观看| 在线播放豆国产99亚洲| 欧美一区二区三区播放老司机| 一区二区三区日韩精品视频| 亚洲综合成人婷婷小说| 欧美jizz19性欧美| 国产精品美女xx| 99国产麻豆精品| 欧美高清免费| 在线不卡中文字幕| 亚洲第一精品夜夜躁人人爽| 新67194成人永久网站| 香蕉亚洲视频| 午夜在线视频一区二区区别| 在线播放视频一区| 免费成人高清| 久久一区二区三区四区| 亚洲乱码视频| 一本一本久久| 亚洲欧美在线看| 欧美一区二区视频观看视频| 免费成人性网站| 欧美综合国产精品久久丁香| 国产一二精品视频| 久热国产精品| 蜜臀va亚洲va欧美va天堂| 久久www成人_看片免费不卡| 国产日本亚洲高清| 这里是久久伊人| 亚洲黄色免费网站| 亚洲尤物在线视频观看| 久久xxxx精品视频| 欧美激情女人20p| 欧美成人一区二区三区| 欧美成人乱码一区二区三区| 99这里只有精品| 久久成人人人人精品欧| 国产精品久久久爽爽爽麻豆色哟哟| 国产午夜精品在线| 亚洲视频导航| 雨宫琴音一区二区在线| 欧美激情麻豆| 欧美日韩一区二区高清| 欧美在线综合| 欧美极品色图| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩国产首页在线观看| 亚洲欧美一区二区原创| 国产精品有限公司| 玖玖玖国产精品| 国产乱肥老妇国产一区二| 夜色激情一区二区| 美女被久久久| 老鸭窝91久久精品色噜噜导演| 国产午夜精品美女毛片视频| 欧美一级视频| 久久久久国产精品一区三寸| 韩日成人在线| 欧美国产日韩精品免费观看| 欧美精品国产一区二区| 亚洲国产精品va在线观看黑人| 欧美日韩不卡合集视频| 噜噜噜91成人网| 在线观看亚洲a| 午夜在线视频一区二区区别| 久久精品亚洲国产奇米99| 国产精品盗摄久久久| 午夜精品电影| 久久久国产亚洲精品| 欧美国产日韩a欧美在线观看| 欧美午夜不卡在线观看免费 | 欧美freesex8一10精品| 久久综合伊人| 久久爱另类一区二区小说| 亚洲欧洲在线一区| 日韩一区二区精品| 亚洲电影在线播放| 久久久久久综合网天天| 欧美国产日韩一二三区| 韩日成人av| 欧美日韩国产综合在线| 亚洲一区一卡| 欧美粗暴jizz性欧美20| 亚洲专区在线| 亚洲一区国产视频| 欧美激情亚洲| 精品成人久久| 久久精品国产精品亚洲| 亚洲欧美成人在线| 美女免费视频一区| 久久精品夜色噜噜亚洲a∨ | 亚洲最新视频在线| 欧美自拍偷拍| 久久久国产精品一区| 在线成人www免费观看视频| 欧美了一区在线观看| 亚洲国产毛片完整版| 欧美成人一区二区三区片免费| av成人黄色| 亚洲大片免费看| 亚洲视频在线看| 亚洲精品久久久蜜桃 | 欧美尤物巨大精品爽| 欧美国产日韩在线| 夜夜精品视频一区二区| 久久久久久婷| 亚洲国产一区二区三区高清| 亚洲国产精品毛片| 乱码第一页成人| 亚洲人成免费| 欧美在线短视频| 亚洲高清免费视频| 欧美色视频在线| 亚洲免费在线视频一区 二区| 久久精品一区二区三区四区 | 欧美一区免费| 亚洲第一页中文字幕| 黄色一区二区三区|