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

📄 link.cpp

📁 1、 静态分配的顺序表及增量式分配的顺序表在表示与实现上的差别
💻 CPP
字号:
#include<stdlib.h> 
#include<stdio.h>
#include<malloc.h>
struct Lnode{
int  num;
int  key;
struct Lnode *next;
};



main(int arge,char *argv[])
{
	int n,m,i,k,u;
	struct Lnode *head,*p,*s,*q;
	n=atoi(argv[1]);
	m=atoi(argv[2]);

   for(i=1;i<arge;i++)
	{
	    if(atoi(argv[i])==0) 
		{u=0;
		break;
		}
	}
	if(u==0)
	{ 
		printf("ERROR,重新输入命令行参数\n");
		return;
	}
 
else if(n!=arge-3)                                       //考虑输入的n与密码个数不等时报错
     printf("ERROR,重新输入命令行参数\n");
else{
// 创建一个循环链表
s=(struct Lnode*)malloc(sizeof(struct Lnode));
for(i=1;i<=n;i++){
if(i==1)  head=s;
p=s;                                                 //P指向新建的接点
p->num=i;
p->key=atoi(argv[i+2]);
s=(struct Lnode*)malloc(sizeof(struct Lnode)); 
p->next=s;                                      
}
p->next=head;                        //所有结点创建完毕,把尾指针与头指针相连
free(s);
p=head;

printf("编号顺序依次为:");

//找结点并删除
for(i=1;i<=n;i++){
for(k=1;k<m;k++) {q=p;  p=p->next;}      //找到要删除的结点,q前驱,
m=p->key;
printf(" --> %d",p->num);                 //并保存要删除结点中的密码,以作为下次循环的条件                
p=p->next;                              //删除结点,作结点前后结点的连接
q->next=p;
}

printf("\n");
}
}

⌨️ 快捷键说明

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