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

📄 作业单链表.cpp

📁 c++算法的很经典的一些小练习 看了 觉得还可以 给大家分享一下!
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define NULL 0
typedef int ElemType;
typedef int Status;
typedef struct Node  {
      ElemType      data;  // 数据域
      struct Node   *next;  // 指针域
   } LNode, *LinkList; 

LinkList  Creat_Link( );  
Status Listdelete(LinkList &L,int i,ElemType &e);

void main( ){
	LinkList L,p;
	int i;
	ElemType e;
	L=Creat_Link( );
	if(L == NULL)
		printf("没有生成单链表\n");
	else {
		printf("\n输入要删除的元素的位置i=");
		scanf("%d", &i);
		if(!Listdelete(L,i, e))
			printf("\n删除操作失败!");
		else{
			p=L;
			i=0;
			printf("\n单链表中的元素是:\n");
			while(p->next){
				p=p->next;
				i++;
				printf("\t%d",p->data);
				if(i%5==0)printf("\n");				
			}
			printf("\n被删除的元素是:%d\n",e);
		}
	}
}

LinkList  Creat_Link( )
{ LinkList head,  tail,  p;  
   ElemType x;
   p=(LinkList)malloc(sizeof(LNode));
   head = tail = p; p->next = NULL;
   printf("结束时请输入:0");
   printf("\n输入元素x=");
   scanf("%d", &x);
   while (x){
       p = (LinkList)malloc(sizeof( LNode));
	   p->data = x;    
	   p->next = NULL;
       tail->next = p;
	   tail = p;
	   printf("输入元素x=");
	   scanf("%d", &x);
   }
   return head;      
} 
Status Listdelete(LinkList &L,int i,ElemType &e){
	LinkList p=L,q;
	int j=0;
	while(p->next&&j<i-1){
		p=p->next;
		j++;
	}
	if(!(p->next)||j>i-1)return ERROR;
	q=p->next;
	p->next=q->next;
	e=q->data;free(q);
	return OK;
}


⌨️ 快捷键说明

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