#include"stdio.h"
#include"malloc.h"
#include
#define n 10 /*代表要處理的元素個數 可以誰使用者的意思修改*/
#define ok 1
#define overflow 0
typedef int elemtype;
typedef int status;
typedef struct node
node,*linklist;
//////初始化單鏈表
///status initlinklist(node **l)
printf("請輸入元素個數為%d/n",n); /*元素個數為n*/
(*l)->next = null;
p = (*l);
for (i = n; i > 0; i--)
scanf("%d",&(q->data));
q->next = null;
p->next = q;
p = q;
k++;
}return ok;
}///
//對單鏈表的元素進行排序
///status linklistsort(linklist *l)
p = p->next;
}i++;
}return ok;}//
刪除相同的元素
//status deletesameelement (linklist *l)
p = p->next;
}k = k->next;
p = k;
}return ok;}/
///對單鏈表中的元素倒置以前寫的演算法 太臭
/////*status linklistreverse(linklist *l)
/* lb=(linklist)malloc(sizeof(node)); /*重新建立乙個單鏈表 將倒置後的元素放在lb中*/
/* lb->next=null;
p=lb;
for(i=count-1;i>=0;i--)
q->data=a[i];
q->next=null;
p->next=q;
p=q;}}
p=lb->next; /*輸出倒置後的單鏈表*/
/*while(p!=null)
return ok;
}*///
/ / 對單鏈表中的元素倒置
status linklistreverse(linklist *l)
q->next = p;
s->next = q;
(*l)->next = s;
return ok;
//釋放接點
status freelinklist(linklist *l)
return ok;
}列印出單鏈表
status printlinklist(linklist l)
printf("%4d",p->data);
p = p->next;
}getchar();
return ok;
}int main(void) /*選單*/
while (select > 6 && select < 0);
if(flag == 0)
break;
switch(select)
else
printf("對不起!您還沒建立單鏈表/n請先建立單鏈表");
break;
case 2:
if (e == 1)
else
printf("對不起!您還沒建立單鏈表/n請先建立單鏈表");
break;
case 3:
if(e == 1)
else
printf("對不起!您還沒建立單鏈表/n請先建立單鏈表");
break;
case 4:
if (e == 1)
else
break;
case 5:
if (e == 0)
else
break;
default:
printf("對不起您選擇的數字有誤 請重新輸入");
break;}}
system("pause");
return 0;
}修改了一下
單鏈表操作
include include typedef struct node tag node 建立不帶頭結點的單鏈表 node createnode else p q scanf d n 函式體結束,q指標變數被釋放,不能通過head引數帶回到呼叫函式 要把head帶回到呼叫函式,要把它定義為指向指標的...
單鏈表操作
這一次補上鍊表的注釋,是空閒的時候敲出來的,如果有錯,希望幫忙糾正 部分給出了詳細說明,這裡只選取了基本操作,因為更複雜的鍊錶操作太繁瑣,這裡就不寫了 如果有什麼不懂的地方,可以隨時詢問 include using namespace std typedef int elemtype struct ...
單鏈表操作
資料結構上機測試 2 1 單鏈表操作 atimelimit 1000ms memory limit 4096k 題目描述輸入n 個整數,先按照資料輸入的順序建立乙個帶頭結點的單鏈表,再輸入乙個資料 m,將單鏈表中的值為 m的結點全部刪除。分別輸出建立的初始單鏈表和完成刪除後的單鏈表。輸入第一行輸入資...