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

📄 circular.cpp

📁 用C语言编写实现数据结构方面的例子
💻 CPP
字号:
#include <stdio.h>
#include <malloc.h>

typedef struct LNode
{
	int data;
	struct LNode *next;
};

typedef struct Circular
{
	int data;
	struct Circular *next;
};

void CircularSetNull(struct Circular **p)
{
	*p=NULL;
}

int CircularLength(struct Circular **p)
{
	struct Circular *q;
	q=*p;
	int n=0;

	if (q!=NULL)
	{
		n++;
		q=q->next;	
	}
	return n;
}

void CircularGet(struct Circular **p,int i)
{
	int j=1;
	struct Circular *q=*p;
	if (i<1)
	{
		printf("参数错误!");
	}
	else
	{
		j++;
		q=q->next;
	}

	if (q!=NULL)
	{
		printf("元素:%d",q->data);
	}
	else
		printf("位置参数不正确!\n");
}

int CircularLocate(struct Circular **p,int x)//元素定位
{
	int i=1;

	struct Circular *q=*p;
	if (q!=NULL && q->data!=x)
	{
		q=q->next;
		i++;
	}

	if (q==NULL)
	{
		return 0;
	}
	else
		return i;
}

void CircularInsert(struct Circular **p,int x,int i)
{
	int j=1;
	struct Circular *s,*q;

	q=*p;

	s=(struct Circular *)malloc(sizeof(struct Circular));
	s->data=x;

	if (i==1)
	{	
		s->next=q;
		*p=s;		
	}
	else
	{
		while (j<i-1 && q->next!=NULL)
		{
			j++;
			q=q->next;
		}
		if (j==i-1)
		{
		    s->next=q->next;//
			q->next=s;	  //                         
		}
		else printf("position parameter is incorrect!\n");	
	}

}

void CircularDelete(struct Circular **p,int i)//第i数删除
{
	struct Circular *q,*t;
	int j=1;

	q=*p;
	if (i==1)
	{
		t=q;
		*p=q->next;
	}
	else
	{
		while(j<i-1 && q!=NULL)
		{
			j++;
			q=q->next;
		}
		if (j==i-1 && q->next!=NULL)
		{
			t=q->next;//指向第i个
      		q->next=t->next;//第i-1与i+1连接

		}
		else printf("position parameter is incorrect!\n");

	}

	if(t=NULL)
     	free(t);
}

void CircularDisplay(struct Circular **p)
{
	struct Circular *q=*p;

	if (q==NULL)
	{
		printf("CircularLinkList is Null!");
	}
	else if (q->next==NULL)
	{
		printf("%d",q->data);

	}
	else
	{	
		while (q!=NULL)
		{
			printf("%d->",q->data);
			q=q->next;
		}
		printf("%d->",q->data);
	}

}



char a[]="abcdef";
void f(char b[])
{
	printf("%#x\n",b);
	printf("%#x\n",&b[0]);
}
void ff(char *c)
{
	printf("%#x\n",c);
	printf("%#x\n",&c[0]);
}


int main()
{


	printf("%#x\n",&a);
	printf("%#x\n",a);
	f(a);
	ff(a);

	return 0;
}

⌨️ 快捷键说明

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