⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linklist.h

📁 Idon tkonow,you know
💻 H
字号:
// linkList.h: interface for the linkList class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LINKLIST_H__DEB787DD_323C_45A8_8CFF_B62661FE246A__INCLUDED_)
#define AFX_LINKLIST_H__DEB787DD_323C_45A8_8CFF_B62661FE246A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "listNode.h"

#include "fstream.h"
template<class T>
class linkList :public listNode<T>
{public:listNode<T> *first,*last;
public:
	linkList(){	
		first=NULL;
		last=NULL;	
	};

	void createLinkList(){	
		fstream infile;
		T dat;
		infile.open("linklist.txt",ios::in);//工程目录下附有linkList.txt 文件
		if(!infile){		
			cout<<"linkList can't open.\n";
		}	
		while(!infile.eof()){//eof()判断文件是否结束		
			infile>>dat;     //读取数据
			inserFirst(dat);	
		}
		infile.close();
	}


	void inserFirst(T da){	
		listNode<T> *p=new listNode<T>;
		p->data=da;
		p->next=first;
		first=p;
		if(last==NULL)
			last=p;
	}
	/*
	*/
	///////插入排序方法
	void sort(){
	
		listNode<T> *lastInOrder;
		listNode<T> *firstOutOfOrder;
		listNode<T> *ptr;
		listNode<T> *pre;
		lastInOrder=first;
		if(first==NULL){		
			cout<<"Cannot sort an empty list"<<endl;		
		}
		else
			if(first->next==NULL)
				cout<<"The length is 1 ,don't need to be sorted"<<endl;
			else
				while(lastInOrder->next!=NULL){
				
					firstOutOfOrder=lastInOrder->next;
					if(firstOutOfOrder->data<first->data){
					
						lastInOrder->next=firstOutOfOrder->next;
						firstOutOfOrder->next=first;
						first=firstOutOfOrder;					
					}
					else{
					
						pre=first;
						ptr=first->next;
						while(ptr->data<firstOutOfOrder->data){
						
							pre=ptr;
							ptr=ptr->next;			
						}
						if(ptr!=firstOutOfOrder){
						
							lastInOrder->next=firstOutOfOrder->next;
							firstOutOfOrder->next=ptr;
							pre->next=firstOutOfOrder;					
						}
						else{						
							lastInOrder=lastInOrder->next;						
						}					
					}				
				}
	
	
	
	
	}
	void outPut(){	
		listNode<T> *p=first;
		while(p){		
			cout<<p->data<<" ";	
			p=p->next;
		}	
		
	}
	virtual ~linkList(){	
		listNode<T> *p,*pl;
		p=first;
		while(p){		
			pl=p->next;
			delete p;
			p=pl;		
		}	
	};

};

#endif // !defined(AFX_LINKLIST_H__DEB787DD_323C_45A8_8CFF_B62661FE246A__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -