码迷,mamicode.com
首页 > 其他好文 > 详细

链表学习一:单链表创建-头插入与尾插入

时间:2014-12-03 19:08:22      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   sp   for   数据   div   

  链表的创建过程是一个动态的生成过程,创建链表有两种思路,一种是从表头插入,另一种是从表尾插入。

  表头插入思路:从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。

  表尾插入思路:从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表尾上,直到读入结束标志为止。

  两种方法C++实现如下:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 typedef int elemtype;
 5 typedef struct node
 6 {
 7     elemtype m_nData;
 8     node* m_pNext;
 9 }ListNode;
10 
11 //创建链表一:头插法建表
12 ListNode* CreateList(ListNode* m_pHead){
13     m_pHead = new ListNode;                              
14     if (!(m_pHead))
15     {
16         cout << "分配内存空间失败!";
17     }
18     int  listsize = 10;
19     cout << "请输10个数字:"<<endl;
20     m_pHead->m_pNext= NULL;
21     for (int i = listsize; i > 0; i--)
22     {
23         ListNode* m_pTemp = m_pHead;
24         ListNode*m_pNewNode = new ListNode;
25         cin>> m_pNewNode->m_nData;
26         m_pNewNode->m_pNext = m_pTemp->m_pNext;
27         m_pTemp->m_pNext = m_pNewNode;
28     }
29     return m_pHead;
30 }
31 
32 //创建链表二:尾插法创建
33 ListNode* CreateList2(ListNode* m_pHead){
34     m_pHead= new ListNode;
35     if (!(m_pHead))
36     {
37         cout << "分配内存空间失败!";
38     }
39     m_pHead->m_pNext = NULL;
40     ListNode* pTail =m_pHead;
41 
42     int  listsize = 10;
43     cout << "请输10个数字:" << endl;
44     
45     for (int i = listsize; i >0; i--)
46     {
47         ListNode* pNewNode = new ListNode;
48         cin >> pNewNode->m_nData;
49         pTail->m_pNext = pNewNode;
50         pTail = pNewNode;
51         pNewNode->m_pNext = NULL;
52     }
53     return m_pHead;
54 }
55 //打印链表
56 void printList(ListNode* m_pHead){
57     ListNode* m_pTemp=m_pHead; 
58     while (m_pTemp->m_pNext )
59     {
60         m_pTemp = m_pTemp->m_pNext;
61         cout << m_pTemp->m_nData << "\t";
62     }
63     cout << endl;
64 }
65 
66 void main()
67 {
68     ListNode* m_pList=NULL;
69     m_pList= CreateList(m_pList);
70     printList(m_pList);
71 
72     ListNode* m_pList2 = NULL;
73     m_pList2 = CreateList2(m_pList2);
74     printList(m_pList2);
75 }

 

链表学习一:单链表创建-头插入与尾插入

标签:style   blog   io   color   os   sp   for   数据   div   

原文地址:http://www.cnblogs.com/xp12/p/4140581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!