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

📄 main.cpp

📁 数据结构试验 实验一 线性表的顺序表示与实现 实验二 线性表的链式表示与实现 实验三 栈与队列及其应用 实验四 二叉树的应用 实验五 图的遍历与应用 实验六 查找技术 实验七 内部排序
💻 CPP
字号:
#include <iostream.h>
#include <malloc.h>

typedef struct LNode
{int data;
struct LNode *next;
}Lnode,  *LinkList;
//建立一个单链表L
void CreatLinkList(LinkList &L,int j)
{
	LinkList p,q;
	L=(LinkList )malloc(sizeof(Lnode));
	L->next=NULL;
	q=L;
   cout<<"在单链表内输入整数:"<<endl;
   for(int i=0;i<j;i++)
   {   p=(LinkList)malloc(sizeof(Lnode));
       cin>>p->data;
       p->next=q->next;
	   q->next=p; 
	   q=p;
   }
}
//输出单链表L的数据元素
int PrintLinkList(LinkList &L)
{
    LinkList p;
	p=L->next;
	if(L->next==NULL)
	{
		cout<<"链表没有元素!"<<endl;
		return 0;
	}
	cout<<"单链表的数据元素为:";
	while(p)
		{
		   cout<<p->data<<" ";
		   p=p->next;
		}
	cout<<endl;
	return 1;
}
//计算单链表L的数据元素个数
void LinkListLengh(LinkList &L)
{
	int i=0;
	LinkList p;
	p=L->next;
	while(p)
	{
	   i++;	
	   p=p->next;
	   }
	cout<<"单链表的数据元素个数为:"<<i<<endl;
}
//在单链表L的第I个元素前插入一个数据元素X
int InsertLinkList(LinkList &L, int i, int x)
{
	LinkList p,s;
	int j=0;
	p=L; 
	while(p&&j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!p||j>i-1)
	{
		cout<<"插入元素的位置不合理!";
		return 0;
	}
	s=(LinkList)malloc(sizeof(LNode));
	s->data=x;
	s->next=p->next;
	p->next=s;
	return 1;
}

int DeleteLinkList(LinkList &L,int i)
{//删除单链表L的第I个数据元素。
	LinkList p,q;
	int j=0;
	p=L;
	while(p->next&&j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!(p->next)||j>i-1)
	{
		cout<<"删除元素的位置不合理!";
		return 0;
	}
	q=p->next;
	p->next=q->next;
	i=q->data;
	free(q);
	return 1;

}
//销毁单链表L
void DestroyLinkList(LinkList &L)
{
	LinkList p,q;
	p=L->next;
	while(L->next!=NULL)
	{
		q=p->next;
		L->next=q;
	    free(p);
		p=q;
	}
   free(L);
   cout<<"链表已经被销毁!"<<endl;
}

void main()
{
    LinkList L;
	int i,j,x;
	cout<<"输入的元素的个数:";
	cin>>j;
    CreatLinkList(L,j);
    LinkListLengh(L);
    PrintLinkList(L);

	cout<<"在第几个元素前插入:";
	cin>>i;
	cout<<"输入插入的元素:";
	cin>>x;
    InsertLinkList(L,i,x);
    LinkListLengh(L);
    PrintLinkList(L);

    cout<<"输入删除元素的位置:";
	cin>>i;
    DeleteLinkList(L,i);
    LinkListLengh(L);
    PrintLinkList(L);
    DestroyLinkList(L);
}

⌨️ 快捷键说明

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