?? 作業單鏈表.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 + -