📄 circular.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 + -