遍历一个给定数组,创建一个有序链表
// 遍历数组建立有序链表.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;struct ListNode{int m_nValue;ListNode *m_pNext;};//创建一个链表,输入从头到尾结点的值,输入-1表示结束void AddItem(ListNode *&pHead, int nValue){ListNode *pCur = NULL;ListNode *pPre = NULL;//创建新节点ListNode *pNewData = new ListNode;pNewData->m_nValue = nValue;pNewData->m_pNext = NULL;if (pHead == NULL){pHead = pNewData;}else{ if (pHead->m_nValue > nValue) {pNewData->m_pNext = pHead;pHead = pNewData; }else{pCur = pHead->m_pNext;pPre = pHead;while (pCur!=NULL && pCur->m_nValue<nValue){pPre = pCur;pCur = pCur->m_pNext;}pNewData->m_pNext = pPre->m_pNext;pPre->m_pNext = pNewData;}}}//从头到尾打印链表void PrintList(ListNode *&pHead){if (pHead != NULL){ListNode *pCur = pHead;while (pCur != NULL){cout << pCur->m_nValue << " ";pCur = pCur->m_pNext;}cout << endl;}else{cout << "链表为空!" << endl;}}int _tmain(int argc, _TCHAR* argv[]){int a[6] = {2,1,4,3,0,9};ListNode *pHead = NULL;for (int i=0; i<6; i++){AddItem(pHead, a[i]);}PrintList(pHead);system("pause");return 0;}