今天打的單鏈表代碼還有點小問題待修改


#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
struct Node{

ElemType data;
struct Node *next;

};
typedef struct Node SLink;
SLink *creatNode(){

SLink *node=(SLink*)malloc(sizeof(SLink));
//創建頭結點
node->next=NULL;
//指針置空
return node;
}
//創建鏈表
SLink *init1(){
return creatNode();
}
//打印鏈表
void print(SLink *list){
SLink *p=list->next;
int m=1;
printf("鏈表打印結果如下:\n");
if(list->next==NULL){
printf("鏈表為空");
return;
}
while(list->next!=NULL){
printf("第%d個數為%d\n",m++,p->data);
p=p->next;
}

}
//輸入鏈表
void creatdata(SLink *list){
SLink *p=list;
int n,m=1;
printf("請輸入第%d個數(輸入-1以停止輸入)\n",m);

while(scanf("%d",&n),n!=-1){
SLink *node=creatNode();
node->data=n;
p->next=node;
p=p->next;
m++;
}
p->next=NULL;

}
//在頭位置插入
void intofront(SLink *list){
SLink *p=list->next;
int n;
printf("輸入你想插入的數字:");
SLink *node=creatNode();
scanf("%d",&n);
node->data=n;
list->next=node;
node->next=p;

}
int main(){
SLink *list=init1();//創建鏈表
while(true){
printf("1.創建鏈表\n2.在頭位置插入\n3.打印\n");
int n;
printf("請輸入操作序號:\n");
scanf("%d",&n);
switch(n)
{
case 1: creatdata(list); break;//輸入鏈表
case 2: intofront(list); break;//在頭位置插入
case 3: print(list); break;//打印
}
}
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com