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

📄 singlelink.h

📁 使用栈的一些方法,用它来验证表达式是否合法并计算表达式的值
💻 H
字号:
#include "iostream"
#include "stdlib.h"
#define TRUE 1
#define FALSE 0
typedef struct LNode{
	int data;
	int ms;
	struct LNode *Next;
}LIST,*pLIST;
LIST *head=(LIST*)malloc(sizeof(LIST));
void InitList(LIST *L,int ms)
{
	L->data=1;
	L->ms=ms;
	L->Next=NULL;
	head->Next=L;
}
int FindList(LIST *L,int item)
{
	L=head;
	while(L->Next)
	{
		if(L->Next->data==item)
			return L->Next->ms;
		L=L->Next;
	}
	return 0;
}
void InsertList(LIST *L,int item,int re)
{
	L=head;
	while(L->Next)
	{
		if(L->Next->data==re)
		{
			LIST *p=(LIST*)malloc(sizeof(LIST));
			p->data=item;
			p->ms=L->Next->ms+1;
			p->Next=L->Next->Next;
			L->Next->Next=p;
		}
		L=L->Next;
	}
}
bool DeleteList(LIST *L,int item)
{
	L=head;
	while(L->Next)
	{
		if(L->Next->data==item)
		{
			LIST *p=L->Next;
			L->Next=L->Next->Next;
			free(p);
			return TRUE;
		}
		L=L->Next;
	}
	return FALSE;
}
void OutputList(LIST *L)
{
	L=head;
	while(L->Next)
	{
		std::cout<<L->Next->data;
		L=L->Next;
	}
}




void DivToTwo(LIST *a)
{
	a=head;
	LIST *head_b=(LIST*)malloc(sizeof(LIST));
	LIST *p;
	p=head_b;
	while(a->Next)
	{
		if(a->Next->ms%2==0)
		{
			LIST *b=(LIST*)malloc(sizeof(LIST));
			b->data=a->Next->data;
			b->ms=a->Next->ms;
			b->Next=NULL;
			p->Next=b;
			p=b;
			a->Next=a->Next->Next;
		}
		a=a->Next;
	}
	std::cout<<"单链表a:";
	OutputList(a);
	std::cout<<"单链表b:";
	p=head_b;
	while(p->Next)
	{
		std::cout<<p->Next->data;
		p=p->Next;
	}
}
void Return(LIST *L)
{
	L=head;
	LIST *next;
	LIST *prev=L;
	LIST *r=L->Next;
	LIST *First=L->Next;
	while(r)
	{
		next=r->Next;
		r->Next=prev;
		prev=r;
		r=next;
	}
	First->Next=NULL;
	head->Next=prev;

}

⌨️ 快捷键说明

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