数据结构(算法)-线性表2(单链表)
生活随笔
收集整理的這篇文章主要介紹了
数据结构(算法)-线性表2(单链表)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
/** 單鏈表 雙鏈表1,空的線性表setNull(L) 2,insert 加入元素 3,根據(jù)位置查找元素 4,查找所有元素 5,刪除一個(gè)元素 */#include <iostream>using namespace std;typedef char ElemType;//單鏈表 struct LNode{ElemType data;struct LNode *next; };void setNull(struct LNode **p){*p=NULL; }void insert(struct LNode **p , ElemType x , int i){int j=1;struct LNode *s , *q;s=(struct LNode *)malloc(sizeof(struct LNode));s->data=x;q=*p;if(i == 1){//前插入頭結(jié)點(diǎn)s->next=q;*p=s;}else{while(j<i-1 && q->next != NULL){//中間插入,查找元素的位置q=q->next;j++;}if(j == i-1){ //定位到相應(yīng)的位置s->next=q->next;//**s的下一個(gè)結(jié)點(diǎn)指向q的下一個(gè)結(jié)點(diǎn)q->next=s; //q的下一個(gè)結(jié)點(diǎn)指向s 形成鏈表}else{cout<<"位置不對(duì)"<<endl;}}}void display(struct LNode **p ){struct LNode *q;q=*p;cout<<"單鏈表:"<<endl;if(q== NULL){cout<<"鏈表為空"<<endl;}else if(q->next == NULL){printf("%c",q->data);}else{while(q->next != NULL){printf("%c->",q->data);q=q->next;}printf("%c",q->data);}printf("\n"); }void del(struct LNode **p,int i){int j=1;struct LNode *q=*p,*t;if(i == 1){//刪除頭結(jié)點(diǎn)t=q;*p=q->next;//直接用后一個(gè)結(jié)點(diǎn)覆蓋前一個(gè)結(jié)點(diǎn)}else{while(j<i-1 && q->next != NULL){//查找刪除元素的位置q=q->next;j++;}if(j == i-1 && q->next != NULL){//定位到相應(yīng)的位置t=q->next;//定位到后,賦值給待刪除結(jié)點(diǎn)q->next=t->next;//t->next賦值給q->next覆蓋掉(刪除)}else{cout<<"位置不對(duì)"<<endl;}if(t != NULL){free(t);//最后銷(xiāo)毀 }} }void main(){struct LNode *head;setNull(&head);insert(&head,'a',1);insert(&head,'b',2);insert(&head,'a',2);insert(&head,'c',4);insert(&head,'d',3);insert(&head,'e',1);//前插display(&head);del(&head,1);//刪頭結(jié)點(diǎn)display(&head);del(&head,5);//刪尾結(jié)點(diǎn)display(&head);del(&head,3);//刪中間結(jié)點(diǎn)display(&head);}?
測(cè)試結(jié)果單鏈表: e->a->a->d->b->c 單鏈表: a->a->d->b->c 單鏈表: a->a->d->b 單鏈表: a->a->b?
轉(zhuǎn)載于:https://my.oschina.net/saulc/blog/2246009
總結(jié)
以上是生活随笔為你收集整理的数据结构(算法)-线性表2(单链表)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux - 搭建FastDFS分布式
- 下一篇: P2017 [USACO09DEC]晕牛