鏈表—C—python__python

來源:互聯網
上載者:User

2-4 在排好序的數中插入一個數,用鏈表來實現

#include<stdio.h>#include<stdlib.h>struct node{    int data;    struct node *next;};int main(){    struct node *p,*head,*q,*t;    int i,n,a;    scanf("%d",&n);    head = NULL;    for(i=1;i<=n;i++)    {        scanf("%d",&a);        p=(struct node *)malloc(sizeof(struct node));        p->data=a;        p->next=NULL;        if(head==NULL)            head=p;        else            q->next=p;        q=p;    }    //讀入待插入的數    scanf("%d",&a);    t=head;    while(t!=NULL)    {        if(t->next==NULL || t->next->data > a)        {            p=(struct node *)malloc(sizeof(struct node));            p->data=a;            p->next=t->next;            t->next=p;            break;//插入完畢退出迴圈        }        t=t->next;    }    //輸出鏈表中所有的數    t=head;    while(t!=NULL)    {        printf("%d ",t->data);        t=t->next;    }    return 0;}

python 實現

#定義表的結點類class LNode:    def __init__(self,data,pnext=None):        self.data=data        self.pnext=pnext#定義單鏈表的類class LList:    def __init__(self):        self.head = None    def initlist(self,data):        self.head = LNode(0)     #頭結點不存資料        p = self.head        for i in data[0:]:            node = LNode(i)            p.pnext = node            p = p.pnext    def insert(self, item):        p = LNode(0)        t=self.head        while t is not None:            if t.pnext is None or t.pnext.data > item:                p.data = item                p.pnext = t.pnext                t.pnext = p                break            t = t.pnext    def printall(self):        p=self.head.pnext        while p is not None:            print(p.data, end=' ')            p=p.pnextif __name__=='__main__':    eles = input('intput elements:').strip().split()    datas = [int(ele) for ele in eles]    linklist = LList()    linklist.initlist(datas)    item = int(input("待插入的資料:"))    linklist.insert(item)    linklist.printall()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.