c++鏈表簡易操作

來源:互聯網
上載者:User

// LinkTableTest.cpp : 定義控制台應用程式的進入點。<br />//<br />#include "stdafx.h"<br />#include <iostream>;<br />using namespace std;<br />//學生結構體,用於構建鏈表<br />struct student<br />{<br /> //string name;<br /> char name[20];<br /> int age;<br /> student* nextStu;<br />};<br />//程式入口<br />void main()<br />{<br /> student c = {"end",0,NULL};<br />student b = {"lucy",21,&c};<br />student a = {"andlu",23,&b};<br />student* head = &a;<br />student* pointer = head;<br />//函數申明<br /> int getLength(student* pointer,int length);<br /> void insertOneNode(student* head,student* pointer,int leng,int index,student* newNode);<br /> void showAllNode(student* pointer);<br /> bool findOneNodeByName(student* head,char* destName,bool inIsFind);<br /> //對數組進行冒泡排序(測試)<br /> void sortArray(int arr[],int arrLen);<br />//函數申明結束</p><p> //調用顯示所有學生資訊函數<br /> pointer = head;<br /> showAllNode(pointer);<br /> //獲得鏈表長度<br /> pointer = head;<br /> int leng = 0;<br /> leng = getLength(pointer,leng);<br /> cout<<"結果接收鏈表長度:"<<leng<<endl;<br /> //尋找lucy<br /> pointer = head;<br /> bool isFindLucy = false;<br /> isFindLucy = findOneNodeByName(head,"lucy",isFindLucy);<br /> cout<<"結果接收尋找lucy:"<<isFindLucy<<endl;<br /> //插入節點<br /> head = &a;<br /> pointer = head;<br /> student x = {"xMen",0,NULL};<br /> student *xmen = &x;<br /> insertOneNode( head, pointer,leng,2,xmen);<br /> //調用顯示所有學生資訊函數<br /> pointer = head;<br /> showAllNode(pointer);<br /> //sort int arr<br /> int arr[10] = {1,5,8,7,6,3,4,2,0,9};<br /> sortArray(arr,10);<br />int i;<br />cin>>i;</p><p>}<br />/**<br />*功能描述:插入一個節點<br />*parm : head,頭結點 index,要插入的位置的後面,第index個的後面<br />*/<br />void insertOneNode(student* head,student* pointer,int leng,int index,student* newNode)<br />{<br /> //int leng = 0;<br /> //leng = getLength(pointer,leng);<br /> if(index > leng)<br /> {<br /> cout<<"抱歉,您插入的位置超出鏈表長度!"<<endl;<br /> return ;<br /> }else if(index == 0)<br /> {<br /> cout<<"您插入了一個頭結點!"<<endl;<br /> student* temp;<br /> temp = head;<br /> newNode->nextStu = temp;<br /> head = newNode;<br /> return;<br /> }<br /> for(int i = 0;i< index-1;i++)<br /> {<br /> pointer = pointer->nextStu;<br /> }<br /> newNode->nextStu = pointer->nextStu;<br /> pointer->nextStu = newNode;<br />}<br />/**<br /> *功能描述:擷取鏈表的長度<br /> *parme :head頭結點<br /> *param :length 返回的長度值<br /> */<br />int getLength(student* pointer,int length)<br />{<br />length = 0;<br /> while(pointer)<br /> {<br /> if(pointer->nextStu!=NULL)<br /> {<br /> length++;<br /> pointer = pointer->nextStu;<br /> }<br /> else<br /> {<br /> cout<<"鏈表長度:"<<length<<endl;<br /> return length;<br /> }<br /> }<br />}<br />/**<br />*功能描述:遍曆所有節點<br />* param : pointer 鏈表頭結點<br />* 功能 :傳入鏈表頭結點,列印出此鏈表的所有節點的名稱<br />*/<br />void showAllNode(student* pointer)<br />{<br /> while(pointer)<br />{<br /> cout<<pointer->name<<endl;<br /> pointer = pointer->nextStu;<br />}<br />}<br />/*<br />*尋找一個學生名稱是否存在鏈表中<br />*param:<br />*head : 鏈表頭結點<br />*destName :要尋找學生的名稱<br />*inIsFind :返回的結果,是否尋找到了<br />*/<br />bool findOneNodeByName(student* head,char* destName,bool inIsFind)<br />{<br /> inIsFind = false;<br /> while(head)<br />{<br />if(!strcmp(destName,head->name))<br /> {<br /> inIsFind = true;<br /> cout<<"找到你要找的了:"<<inIsFind<<endl;<br /> return inIsFind;<br /> }<br /> head = head->nextStu;<br />}<br /> return inIsFind;<br />}<br />//對鏈表進行排序<br />void sortStu()<br />{</p><p>}<br />//對數組進行冒泡排序(測試)<br />void sortArray(int arr[],int arrLen)<br />{<br />int flag , i , j ,temp;<br /> for( i= 0 ;i< arrLen;i++)<br /> {<br /> flag = 0;<br /> for( j = 0;j<arrLen - i - 1; j++)<br /> {<br /> if(arr[j]> arr[j+1])<br />{<br /> flag = 1;<br /> temp = arr[j];<br /> arr[j] = arr[j+1];<br /> arr[j+1] = temp;<br />}<br /> }<br /> if(flag == 0)<br /> {<br /> break;<br /> }<br /> }<br /> //println all data<br /> for(i = 0;i< arrLen;i++)<br /> cout<<arr[i]<<"->"<<endl;<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.