插入的鍊錶為與非空鍊錶的尾部
插入的鍊錶位於非空鍊錶的中間部分
建立乙個單鏈表結點的插入函式,將輸入的學生的序號作為排序,按照從小到大的學號順序插入學生資訊
struct student *insert(struct student *head,struct student *new) /*定義插入節點函式 */
else
if(pnew->number <= p1->number)
else /*插入位置位於鍊錶中間*/
}else
}return (head);
}
(1)判斷要刪除的鍊錶是否為空鍊錶
(2)判斷要刪除的結點是位於鍊錶的表頭、中間還是表尾。
建立乙個函式用於刪除學生的資訊,判斷學號位於鍊錶中的哪個位置,然後進行刪除
(struct student *)delete(struct student *head,int number) /* 刪除鍊錶結點的函式 */
#include#include#include/*定義鍊錶結構內容*/
struct student
;void putout(struct student *head);/*輸出鍊錶中的內容*/
struct student *delete(struct student *head); /* 刪除鍊錶結點的函式 */
struct student *insert(struct student *head); /*定義插入節點函式 */
int get_line(char *cmd);
int main()
}return 0;
}int get_line(char *cmd)
fflush(stdout);
i++;
}return 0;
}struct student *insert(struct student *head) /*定義插入節點函式 */
else
if(pnew->number <= p1->number)
else /*插入位置位於鍊錶中間*/
}else
}pnew = (struct student *)malloc(sizeof(struct student ));
printf("請輸入學生打姓名、學號,輸入學號0則結束\n");
scanf("%s%ld",pnew->name,&pnew->number);
p2 = p1 = head;
}free(pnew);
return (head);
}struct student *delete(struct student *head) /* 刪除鍊錶結點的函式 */
else
if((number == p1->number)) else
}else
}return (head);
}/*輸出鍊錶中的內容*/
void putout(struct student *head)
}
單鏈表的插入與刪除
順序結構的缺點還是蠻大的,現在來看看單鏈表的插入與刪除。單鏈表中,在c語言可以用結構體指標描述 typedef struct node node typedef struct node linklist 有一點很重要 比如我隨便畫乙個。千萬別也成 p next s s netx p next 正確的...
單鏈表的插入和刪除操作
插入的偽 仿照c語言和python status listinsert l linklist l,int i,elemtype e 第i個位置前插入節點 注 是比較ascii碼 read p l and j 0 while p j i 1 p p next read j 1 if p j i 1 r...
單鏈表的插入刪除
include using namespace std struct lnode void creat link lnode head head指標的引用,lnode head 傳遞的是指標,但是對於指標的原值卻發生了copy,這樣你雖然可以對指標指向的記憶體進行修改但是不能對指標進行修改。因此要傳...