栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【无标题】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

#include
#include
#include
#include
#define len sizeof(struct Node)
using namespace std;
template
struct Node
{
T data;
Node * next ;
};

template

class linklist
{

public :
	Node * head ;
	linklist();//空参数的构造函数
	linklist( int n );//n个结点的构造函数
	int listlength(Node *head );//求出单链表的长度
	T get(int pos);//输出位置pos下的值(data
	int  locate(T item);//寻找item 输出其所在的位置
	void  printlinklist();//输出整个单链表
	void insert(int i ,T item);//插入
	T Delete(int i );//删除
		~linklist();//析构

};
template
T linklist::Delete(int i )
{
while(i<=0||i>this->listlength(this->head))
{
cout<<“输入非法请重新输入”< cin>>i;
}
Node * p = new Node;
p=this->head;
T j=p->data;
if (1==i)
{
this->head =p->next;
}
else {

for(int k = 1; k {
p=p->next;
}
j = p->next->data;
p->next = p->next->next;
}
cout<<“你删除的元素为:” < return j;
}
template
void linklist :: insert(int i ,T item)
{ Node *p= new Node;
Node *s= new Node;
s->data=item;
p=this->head;
if(i>this->listlength(this->head)+1)
return ;
else

	{
	 
	 if(1==i)
	 {
	 	s->next=p;
	 	this->head=s;
	 }
	 else 
	{
	 
	for(int j = 1 ; j < i-1 ; j++)
{
	p=p->next;
}
 	s->next=p->next;
	p->next=s;
	}

}
}
template
int linklist::locate(T item)
{
int n = this->listlength(this->head);
Node *p= new Node;
p=this->head;
for(int i = 1; i <= n;i++)
{
if(p->dataitem)
return i;
else
p=p->next;
if(p->next
NULL)
return -1;
}

}

template
T linklist::get(int pos)
{
if(pos >this->listlength(this->head) ||pos<=0)
{
cout<<“输入的位置非法”< }

	 else 
	 {
	 	Node *a =new Node;
	 	a=this->head;
	 	int  i = 1;
	 	while(inext;
	 		i++;
		}
		return a->data;
	 }
}

template
int linklist::listlength(Node *head)
{ int i = 0;
Node *temp= new Node;
temp=head;

  	do{ 
  	  	
  	  	 temp=temp->next;
			 i++;	
		
	  }while(temp->next!=NULL);
	  return i;
}

template
linklist ::~linklist()
{

}
template
void linklist::printlinklist()
{
Node *p;
p=this->head;
int i = 1;

do{
cout<<“第”< cout p=p->next;
i++;
} while(p->next!=NULL);
}
template
linklist::linklist()
{
head->next =NULL;
}
template
linklist::linklist( int n )
{ Node *temp;

  temp = head = new Node; 
for(int i = 0 ; i >j;
        temp->data=j;
	Node *p;
	p=new Node;
	temp->next =p;
	temp=p;
}
temp->next=NULL;

}
int main()
{ linklist a (4);
a.printlinklist();
cout<<“单链表的长度为:” < cout<<“请输入1到”< int i ;
cin>>i;
cout<<“单链表第”< cin>>i;
int x = a.locate(i);
if(-1==x)
cout<<“链表中没有这个数据”< else
cout<<“该数据在链表的位置为:”< cout<<“请输入数据要插入的位置”< cin>>i;
cout<<“请输入要插入的值”< int j;
cin>>j;
a.insert(i,j);
a.printlinklist();
cout<<“请输入想要删除的第x个单链表的值,且其范围不能超过:”< cin>>i;
a.Delete(i);
a.printlinklist();

return 0;
}

#include
#include
#include
typedef struct dunode
{
int data;
struct dunode* prior;
struct dunode* next;
} DulinkList;

DulinkList* MakeEmpty()
{
DulinkList* PtrL;
PtrL = (DulinkList*)malloc(sizeof(DulinkList));
PtrL->prior = PtrL->next = PtrL;
return PtrL;
}
void Creatlink(DulinkListL)
{
int num,data;
DulinkList
p,s;
p = L;
printf(“请输入建立链表的元素个数:”);
scanf_s("%d", &num);
for (int i = 1; i <= num; i++)
{
s = (DulinkList
)malloc(sizeof(DulinkList));
printf(“请输入第%d个数:”, i);
scanf_s("%d", &s->data);
s->prior = p->prior;
p->prior->next = s;
s->next = NULL;
p->prior = s;
}
}
void Insetlink(DulinkList* L)
{
int data;
DulinkList* s,p;
p = L;
printf(“请输入插入的元素:”);
scanf_s("%d", &data);
s = (DulinkList
)malloc(sizeof(DulinkList));
s->data = data;
s->prior = p->prior;
p->prior->next = s;
p->prior = s;
s->next = NULL;
}
void Deletelink(DulinkList* L)
{
int data;
DulinkList* s, * p;
p = L->next;
printf(“请输入删除的数据:”);
scanf_s("%d", &data);
while (p != NULL && p->data != data)
p = p->next;
if (p != NULL)
{
if (p->next != NULL)
{
p->next->prior = p->prior;
p->prior->next = p->next;
free§;
printf("%d已删除!n", data);
}
else {
p->prior->next = NULL;
free§;
printf("%d已删除!n", data);
}
}
else printf("%d不存在!n",data);
}
void Displaylink1(DulinkList* L)
{
DulinkList* p, * s;
p = L->next;
while (p != NULL)
{
printf("%5d", p->data);
p = p->next;
}
printf("n");
}
void Menu()
{
printf("n-----------操作指南-----------nn");
printf(" 1.建立单链表n");
printf(" 2.插入数据元素n");
printf(" 3.删除数据元素n");
printf(" 4.链表输出n");
printf(" 0.退出n");
printf("n------------------------------nn");
}

int main()
{
DulinkList* PtrL= MakeEmpty();
int choice;
while (1) {
Menu();
printf(“请输入您的选择:”);
scanf_s("%d", &choice);
switch (choice) {
case 1:Creatlink(PtrL); break;
case 2:Insetlink(PtrL); break;
case 3:Deletelink(PtrL); break;
case 4:Displaylink1(PtrL); break;
case 0:exit(0);
default:break;
}
}
system(“pause”);
return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665403.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号