#include
#include
#define maxsize
10#define elemtype char
#define ok
1#define error
0//結點型別定義
typedef struct node
node,
*linklist;
//linklist為結構體指標型別
//初始化單鏈表
void
init_list
(linklist *h)
//刪除鍊錶
void
listdestory
(linklist h
)printf
("刪除成功!\n");
}//計算單鏈表的長度
int list_len
(linklist h
)return j;
}//用尾插法建立單鏈表
int create_from_tail
(linklist h
)else
}printf
("\n");
return(ok
);}//按序輸出元素
void
print_out
(linklist h
)printf
("\n");
}//按序號查詢元素
node *
get(linklist h
,int i)
if(i==j)
else
}//按值查詢元素
int locate
(linklist h
,elemtype key)
else
break;}
if(p==
null
)else
}//插入元素
int ins_list
(linklist h
,int i,elemtype e)
else
}//刪除元素
int del_list
(linklist h
,int i, char *e)
else
}//倒序排列元素
void
printrevlist
(linklist h
)//主方法
int main()
else
printf
("查詢到的元素:%c",*
get(
h,a));
printf
("\n");
printf
("請輸入要查詢的元素值:");
getchar()
;scanf
("%c"
,&b)
;locate(h
,b);
//按值查詢
printf
("\n");
printf
("請輸入要插入的位置和元素,[hint:輸入兩個資料之間有逗號]:");
getchar()
;scanf
("%d,%c"
,&d,
&c);
ins_list(h
,d,c)
;//插入
printf
("請輸入要刪除的位置:");
getchar()
;scanf
("%d"
,&f)
;del_list(h
,f,&e)
;//刪除
//倒序排列元素
printf
("倒序排列元素:");
printrevlist(h
);printf
("\n");
//刪除鍊錶
listdestory(h
);return(ok
);}
帶頭結點和不帶頭結點的鏈棧基本操作
c 資料結構 把鏈棧想象成單鏈表頭結點的後插和後刪操作 不帶頭結點的鏈棧 include include include using namespace std typedef struct linknode1 listack1 void initstack1 listack1 l 進棧 lista...
帶表頭結點的單鏈表的基本操作
已知l 是帶表頭結點的非空單鏈表,且p結點既不是首元結點,也不是尾元結點 1.刪除p結點的直接後繼結點 思路 先用工作結點儲存p結點的直接後繼,然後將p結點的指標域指向p結點的直接後繼節點的直接後繼節點,然後再刪除該工作結點。2.刪除p節點的直接前驅結點 有毛病 思路 用工作結點儲存p結點,然後將表...
鏈棧的基本操作
初始化乙個資料元素為整形的鏈棧,並實現進棧 出棧 獲得棧頂元素等操作。通過控制台將1,2,3,4,5進棧,出棧兩次,獲得棧頂元素並輸出,6進棧,列印棧內的所有內容。include include define maxsize 100 define ok 1 define error 0 using ...