1. 程式人生 > >第一次寫博客——單鏈表的基本操作(未完成)

第一次寫博客——單鏈表的基本操作(未完成)

type 單鏈表 刪除 元素 stdlib.h i++ 節點 lis init

#include<stdio.h>
#include<stdlib.h>
#include<string>
typedef int datatype;
typedef struct Node
{
DataType data;
Node*next;
}LinkList;
void print(Linklist*list)
{
printf("鏈表打印結果如下:\n");
if(list->next=NULL){
printf("鏈表為空");
return;
}
LInkList*p=list->next;
int i=1;

while(p!=NULL)
{
printf("第%d個元素,值為%d\n",i++,p->data);
p=p->next;
}
printf("\n\n");

}
int getListLength(LinkList*list)
{
int n=0;
Linklist*p=list;
while(p->next!=NULL)
{
n++;
p=p->next;
}
printf("鏈表長度為:%d\n\n",n);
return n;
}
LinkList*createNode(){
LinkList*node=(LinkList*)malloc(sizeof(LinkList));
node->next=NULL;
return node;
}
LinkList*init1()
{
return createNode();
}
LinkList*init2(int len){
LinkList*list=init1();
int index=0;
LinkList*p=list;
while(index<len){
Node*node=createNode();
printf("請輸入第%d個數:\n",index+1);
scanf("%d",&node->data);
index++;
p->next=node;
p=p->next;
}
return list;
}

void insert1(LinkList*list)
LinkList*p=list;
while(p->next!=NULL)
p=p->next;
Node*node=-createNode();
printf("請輸入要插入的數:\n");
scanf("%d",&node->data);
p->next=node;
print("插入成功");

}
void insert2(LinkList *list)
printf("請輸入要插入的位置\n");
int pos;
scanf("%d,&pos");
if(pos<1||pos>getListLength(list))
{
printf("超出範圍");
return;
}
LinkList*p=list;
int index=0;
while(p->next!=NULL&&index<pos-1){
p=p->next;
index++;

}
Node*node=createNode();
printf("請輸入要插入的數:\n");
scanf("%d,&node->data");
node->next=p->next;
p->next=node;
printf("插入成功");
}
void insert3(LinkList*list)
{
Node* node=createNode();
printf("請輸入要插入的數:\n");
scanf("%d",&node->data);
node->next=list->next;
list->next=node;
printf("插入成功");
}
void delete1(LinkList*list)
{
LinkList*p=list;
while(p->next->next!=NULL)
p=p->nxet;
printf("已刪除最後一個節點,被刪除節點的值為%d\n",p->next->data);
free(p->next);
p->next=NULL;
}
void delete2(LinkList*list)
{
int pos ;
printf("請輸入要刪除第幾個數:\n");
scanf("%d,&pos");
if(pos<1||pos>getLengLength(list))
{
printf("超出範圍");
return;
}
LinkList*p=list;
int index=0;
while(p->next!=NULL&&index<pos-1)
{
p=p->next;
index++;

}
printf("成功刪除第%d位數%d\n\n",pos,p->next->data);
Node*node=p->next->next;
free(p->next);
if(node!=NULL)
p->next=node;
}

第一次寫博客——單鏈表的基本操作(未完成)